为了让pandas to_csv保持前导零,我需要指定什么

时间:2017-01-11 16:42:10

标签: python pandas export-to-csv

我有一个excel文件,我读入了一个数据帧。我想将此df输出到CSV文件。但是CSV文件中的一列(标记为id)是整数,如1,但是想要输出带有前导零的“0001”字符串。
每次我尝试输出文件时,它都会将此列解释为整数并删除前导零。我需要所有前导零。

我试过

import pandas as pd
df = pd.read_excel(<path&filenane>,convertors={"id":object})
df.to_csv(<path&filename>)

CSV文件我想看

id,name,birthday
0001,smith,1980/01/01
dtypes =object,object,object

但现在

id,name,birthday
1,smith,1980/01/01
dtypes=int,object,object

1 个答案:

答案 0 :(得分:0)

您可以使用converters参数控制输入列的类型和格式。以下示例完成了您之后的操作。

  • 请务必使用filename代替StringIO(txt)
  • 转换器参数采用字典,其中键是列的名称,值是可调用的。在这种情况下,我们使用字符串对象类作为可调用对象。它会将此可调用(&#34;函数&#34;排序)应用于列,从而保持前导零。
import pandas as pd
from io import StringIO

txt = """id,name,birthday
0001,smith,1980/01/01
"""

df = pd.read_csv(StringIO(txt), converters=dict(id=str))

df

     id   name    birthday
0  0001  smith  1980/01/01