【发布时间】:2022-01-20 09:48:14
【问题描述】:
我的问题是,当我导入基数时,pandas 会尝试将其转换为数字?
这或多或少是我的 csv 文件的样子。
Data,ID,Text
2018-06-11,20995, bla bla bla
2018-06-11,17980, bla bla bla
2018-06-11,46854, bla bla bla
问题是当我使用 pd.read_csv 导入它时。 Id 列应该与 csv 文件中的完全相同。但是熊猫正在返回类似的东西:
Data,ID,Text
2018-06-11,20995.0, bla bla bla
2018-06-11,17980.0, bla bla bla
2018-06-11,46854.0, bla bla bla
我在读取过程中尝试使用 dtype
df= pd.read_csv('df.csv',encoding ='latin1',dtype={'ID':str})
但它仍然添加了 .0。当我查看 csv 时,它没有这些拖尾 .0
我也尝试过转成字符串
df['ID'] = df['ID'].astype(str)
我想澄清一下,我已经阅读了this question 并且回复没有回答我的问题
【问题讨论】:
-
ID列中的缺失值强制 pandas 转换为float。该列的名称是' ID',您缺少一个空格。>是否位于 CSV 文件的每一行的开头? -
是的,ID 中缺少值,这在我的情况下是可以的。列名是“ID”我只是为了清楚起见而放了空格。 '>' 也一样。我已经删除了这些,因为它们显然会导致清晰度降低。
-
使用您的新示例数据,我无法重现您的结果(使用
pandas 1.1.5)。您的代码将ID列读取为string而不更改它。