pandas 如何转换dtype对象列,以便结果正确显示在csv文件中

lhcgjxsq  于 2023-04-04  发布在  其他
关注(0)|答案(1)|浏览(213)

我在保存/阅读csv文件时遇到了一个问题。我将一个 Dataframe 保存到csv中。在许多列中,它有一个名为id的列

ID
0000
0011
0022
A979

问题是当我使用以下命令保存到csv时

df.to_csv(path, index=False)

结果如下

ID
0
11
22
A979

它基本上会擦除前面的0。
我相信excel认为数据是int,这就是为什么它们被删除。我试图将excel中的列的格式更改为字符串,但仍然不起作用。我注意到该列的dtype是object。因此,我尝试了以下方法

df['ID'] = df['ID'].astype(str)

而dtype仍然是object。我还尝试

df['ID'] = df['ID'].astype('string')

但效果并不好。

df['column'] = df['column'].astype('|S')

我注意到结果打印如下

ID
b'0000'
b'0011'
b'0022'
A979

然后我试着用

df['column'] = df['column'].str.replace('b', '')

但我得到了以下错误

Cnnot use .str.replace with values of inferred dtype 'bytes'

你知道怎么解决这个问题吗?
EDIT 1:当用excel保存时,输出是正确的。这似乎是csv的问题

e3bfsja2

e3bfsja21#

我也遇到了同样的问题,我通过在www.example.com _csv中使用dtype选项打开dataframe解决了这个问题pd.read。
在您的情况下:df.to_csv(path,index=False,dtype= {“ID”:object})
希望有帮助!

相关问题