如何从熊猫将前导零的数据导出到CSV并在csv中保留前导零

时间:2019-06-11 09:32:53

标签: python-3.x pandas csv

我有一个熊猫数据框,其中一列包含带有前导零的数据。我想通过保留前导零来导出CSV中的数据框。所以我尝试了以下代码

import numpy as np
import pandas as pd
import os
os.chdir(path)
x=np.array(['0134','0567','0012','0009'])

df=pd.DataFrame(x,columns=['Test'])
df.dtypes
df.Test=df.Test.astype("str")
df.to_csv("leadingZero.csv")

但是在leadZero.csv中,我在一列中找到0,而在另一列中找到数字0。

您能指导我如何在CSV中保留前导零吗?

2 个答案:

答案 0 :(得分:1)

  • 要保持前导零,请使用df.Test.astype("str")
  • 要删除索引列,请使用:index=False方法中的to_csv
import numpy as np
import pandas as pd

x = np.array(['0134','0567','0012','0009'])

df = pd.DataFrame(x, columns=['Test'])
df.Test = df.Test.astype("str")
df.to_csv("leadingZero.csv", index=False)

输出(leadingZero.csv):

Test
0134
0567
0012
0009

在Office应用程序中使用前导零查看CSV

如果使用Office应用程序打开CSV,请选择“文本”列。我在Ubuntu机器上使用Libre Office Calc

  • 打开CSV文件时,将列选择为Text字段。

Select column as text field

  • 工作表的前导零:

CSV file with leading zeros in Libre Office

如果您使用的是Microsoft Excel,请遵循Microsoft's documentation on Format numbers as text

答案 1 :(得分:0)

这里的问题是 csv 文件。如果您使用不同的格式(如写字板、记事本等)打开 csv 文件,则会出现前导零

在要保留前导零的列上使用 apply('="{}".format)

import pandas as pd
df = pd.DataFrame({'Test': ['0134','0567','0012','0009']})
df['Test'] = df['Test'].apply('="{}"'.format)
df.to_csv('withLeadingZeros'+'.csv', index = False)

来自withLeadingZeros.csv的输出

enter image description here