导出为 CSV 时,如何在列中保留前导零?

新手上路,请多包涵

我正在尝试导出一个带有前导零的列的数据框,如下所示:

 df["CD_LIN_NEG"]

0     001
1     001
2     004
3     001
4     001
5     001
6     003
7     006
Name: CD_LIN_NEG, dtype: object

但是当我导出到 csv 时,当我在 Excel 中打开文件时,所有前导零都被截断了。我怎样才能保留零?

我试图转换为字符串,但它不起作用:

 df["CD_LIN_NEG"] = df['T_PROD_CP.LN'].astype(str).apply(lambda x: x.zfill(3))

或以这种方式:

 df["CD_LIN_NEG"] = '00' + df['T_PROD_CP.LN'].astype(str)

原文由 Juliana Rivera 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

正如@EdChum 建议的那样,这是一个 excel 问题。您需要使用 — 将您的专栏包装在 ="" apply('="{}".format) 中。这将告诉 excel 将条目视为返回引号内文本的公式。该文本将是带有前导零的值。

考虑以下示例。

 df = pd.DataFrame(dict(A=['001', '002']))
df.A = df.A.apply('="{}"'.format)
df.to_excel('test_leading_zeros.xlsx')

原文由 piRSquared 发布,翻译遵循 CC BY-SA 3.0 许可协议

最简单的解决方案是在读取 txtcsv 文件时添加 dtype=str 熊猫中的文件:

 df = pd.read_csv(r'C:\my_folder\my_file.csv', dtype=str)

原文由 Mohsin Asif 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题