【发布时间】:2015-12-29 19:28:16
【问题描述】:
有没有办法防止将 Pandas 数据帧写入 CSV,而不将格式化为字符串的数字转换为数字?
假设我有以下数据框:
>>> import pandas as pd
>>> d=pd.DataFrame(index=['07000','07001','07002'], data=[1,2,3], columns=['Value'])
>>> d.index.name='Zipcode'
>>> d
Value
Zipcode
07000 1
07001 2
07002 3
>>>
我可以确认我的索引不是数字:
>>> print str(d.index.dtype)
object
>>>
但是当我使用d.to_csv('MyFile.csv') 写入 csv 时,索引会转换为整数,我会丢失前导 0。有什么建议吗?
【问题讨论】:
-
写入 csv 时确定零丢失了吗?我复制了你的结果并检查了我的 csv 文件,所有的零都在那里。我的猜测是它们会被你用来读取新文件的任何程序丢失。
-
同意。我复制了代码。当我在 txt 编辑器中打开 csv 文件时,我得到前导零。如果您在电子表格程序中打开文件(或将其读回 pandas 数据框),则此时会删除零。
-
啊,谢谢。所以问题实际上是当我在 csv 中阅读而不是在我编写它时。而且我可以在读取 csv 时指定 dtype,这样问题就解决了。