【问题标题】:How to I export data with leading zeros from Pandas to CSV preserving the leading zeros in csv如何将带有前导零的数据从 Pandas 导出到 CSV,在 csv 中保留前导零
【发布时间】:2019-10-25 16:41:42
【问题描述】:

我有一个 pandas 数据框,其中一列包含前导零的数据。我想通过保留前导零以 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")

但在leadingZero.csv 中,我在一列中发现 0,在另一列中发现丢弃的零

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

【问题讨论】:

标签: python-3.x pandas csv


【解决方案1】:
  • 要保留前导零,请使用 df.Test.astype("str")
  • 要删除索引列,请使用:index=False in to_csv 方法。
将 numpy 导入为 np 将熊猫导入为 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 字段。

  • 工作表将有前导零:

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

【讨论】:

  • 我推荐使用这个解决方案,因为它使用的是内部矢量化函数,而 Prateek Mishra 的答案以元素方式(也不推荐)使用 lambda(不推荐)。
【解决方案2】:

这里的问题是 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的输出

【讨论】:

    猜你喜欢
    • 2011-10-01
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 2017-02-27
    • 2012-11-28
    • 2018-04-28
    相关资源
    最近更新 更多