【发布时间】:2021-08-25 11:45:28
【问题描述】:
这就是我想要的。当我运行以下代码时
import pandas as pd
df = pd.DataFrame({'col': ['a', 1, 2, 3]})
print(df[1:].infer_objects().dtypes)
预期结果:col int64
如果我加载与 csv 相同的 Dataframe,结果会有所不同:
import pandas as pd
pd.DataFrame({'col': ['a', 1, 2, 3]}).to_csv('tmp.csv', index=False)
df = pd.read_csv('tmp.csv')
print(df[1:].infer_objects().dtypes)
我收到col object。
为什么结果不同?在第二种情况下,我应该如何加载 csv 以获取 col int64?
【问题讨论】:
-
你可以试试
convert_dtypes -
当我使用 convert_dtypes 我得到 col 字符串。我期待 int64。
-
如果有人对我最终得到的解决方案感兴趣——我决定在调用 pandas.read_csv 时使用
converters参数