Python pandas在输出csv文件中保留十进制逗号

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (455)

我正在使用pandas库对.csv文件进行一些操作。

输入文件input.csv

    A    B   
   1,2  2,2
   3,5  5,4 

我的代码:

import pandas as pd

df = read_csv('input.csv', sep = ';', encoding = 'ANSI', decimal = ',')
'''
some operations on cells like adding, multiplying...  
'''

df.to_csv('output.csv', sep = ';', encoding = 'ANSI', index = False)

这是我的output.csv样子:

    A    B    C   
   1.2  2.2  6.5
   3.5  5.4  7.8

但有没有办法让我的小数点分隔符像逗号一样逗号input.csv

这是output.csv应该如何看起来像:

    A    B    C   
   1,2  2,2  6,5
   3,5  5,4  7,8 

我尝试过类似的东西,但它不起作用:

df = df.astype(str).replace('.',',')
提问于
用户回答回答于

方法1

您可以使用:

df.to_csv('output.csv', sep = ';', encoding='ANSI', index=False, decimal=",")

方法2

作为替代方案,您也可以使用。

df = df.applymap(lambda x: str(x).replace('.',','))

代替 df = df.astype(str).replace('.',',')

它会给:

      A   B   C
0   1,2 2,2 6,5
1   3,5 5,4 7,8

接着

df.to_csv('output.csv', sep = ';', encoding = 'ANSI', index=False)
用户回答回答于

就像pandas.read_csvDataFrame.to_csv也有一个decimal参数:

df.to_csv('output.csv', sep = ';', encoding='ANSI', index=False, decimal=",")

所属标签

可能回答问题的人

  • 不吃貓的鱼oo

    5 粉丝466 提问6 回答
  • Richel

    8 粉丝0 提问4 回答
  • 人生的旅途

    10 粉丝484 提问3 回答
  • 云服务小能手

    0 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励