熊猫如何使用混合类型列读取csv

时间:2021-06-08 13:16:16

标签: python pandas csv types

这就是我想要的。当我运行以下代码时

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

1 个答案:

答案 0 :(得分:1)

我认为使用 pandas 的 read_csv() 函数提取的列默认是包含字符串的列,以避免出现任何问题。

但是,您可以使用以下方法修改列的类型:

df['your_column'] = pd.to_numeric(df['your_column'])

或整个数据框:

df = df.apply(pd.to_numeric)