这就是我想要的。当我运行以下代码时
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
?
答案 0 :(得分:1)
我认为使用 pandas 的 read_csv()
函数提取的列默认是包含字符串的列,以避免出现任何问题。
但是,您可以使用以下方法修改列的类型:
df['your_column'] = pd.to_numeric(df['your_column'])
或整个数据框:
df = df.apply(pd.to_numeric)