首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何防止熊猫to_csv将数字格式化为数字,以保留领先的0?

如何防止熊猫to_csv将数字格式化为数字,以保留领先的0?
EN

Stack Overflow用户
提问于 2020-10-22 18:51:29
回答 2查看 882关注 0票数 0

我使用to_csv方法将数据作为csv保存出来。然而,领先的0正被移除。

例如,在输出数据之前,数据格式是这样的:

正如您在第6列“购买订单”中所看到的那样,数据是数字的,但包含前面的0。当输出到csv并在Excel中查看时,我希望保留这种格式并保持领先的0,但是在csv输出中,前面的0将被删除:

有什么办法可以防止这种情况发生吗?下面是我使用的命令:

代码语言:javascript
运行
复制
out1.to_csv(outfile + '.csv', index=False, float_format='%f')
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-22 19:06:40

我认为这更多的是一个Excel问题,而不是pandas。如果你用文本编辑器查看你的csv文件,(我猜)你仍然会看到带有前导零的数字。我这么说是因为我遇到过类似的问题:ExcelExcel假设CSV文件、namely dates中的项的格式,并产生不可逆转或烦人的转换。

在本例中,它看起来像是Excel将采购订单看作一个数字,然后将其格式化为数字。它在打开文件时立即这样做,所以您不能返回并格式化单元格或任何东西(零丢失)。

我认为两个简单的选择是:

  • df.to_excel().xlsx格式保存。这对我有用一些假的前导零数据。如果您只打算使用Excel中的数据,这可能是最好的。
  • 编辑您的购买订单列,以使它清晰的文本。类似于附加一个非数字字符(稍后可以删除):

代码语言:javascript
运行
复制
df['Purchase Order'] = '#' + df['Purchase Order']
# df.to_csv('data.csv')
票数 1
EN

Stack Overflow用户

发布于 2020-10-22 19:07:06

你试过使用float_format='%.16f'或类似的东西吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64488723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档