在一个列数大于100的 Dataframe 上,我想让panda(v1.4.2)自动将所有列转换为“最佳”数据类型。根据df.convert_dtypes()或df文档,infer_objects()应该可以做到这一点。考虑以下示例:
>>df = pd.DataFrame({"A":["1","2"], "C":["abc","bcd"]})
>>df
A C
0 1 abc
1 2 bcd
>>df.dtypes
A object
C object
dtype: object
>>df.convert_dtypes().dtypes
A string
C string
dtype: object
>>df.infer_objects().dtypes
A object
C object
dtype: object
为什么A
列没有转换成int
?如果我尝试了错误的panda方法,有什么替代方法?
3条答案
按热度按时间xmakbtuz1#
查看convert_dtypes()的文档,该方法似乎正确地完成了从
Object
到Int
的转换,但无法确定字符串对象是否为数值:您可以使用以下方法作为转换的解决方法:
lxkprmvk2#
要将A转换为int,可以用途:
tzdcorbm3#
[再次编辑]
我做了更多的研究,发现这是不可能的,如果想要解释,在评论中问我。