Pandas Dataframe.to_csv decimal=',' 不起作用

Jos*_*den 5 python csv pandas

在 Python 中,我将 Pandas Dataframe 写入 csv 文件,并希望将十进制分隔符更改为逗号 ( ,)。像这样:

results.to_csv('D:/Data/Kaeashi/BigData/ProcessMining/Voorbeelden/Voorbeeld/CaseEventsCel.csv', sep=';', decimal=',')
Run Code Online (Sandbox Code Playgroud)

但是csv文件中的十进制分隔符仍然是一个. Why?我做错了什么?

som*_*one 5

如果decimal参数不起作用,可能是因为列的类型是object. (检查时检查dtype最后一行中的值df[column_name]

如果某些行的值无法解析为数字,就会发生这种情况。

您可以强制列更改类型: 更改 Pandas 中列的数据类型。但这会使您丢失该列中的非数字数据。


Pde*_*evG 0

不知怎的,我也不能让这个工作。我总是最终使用以下脚本来纠正它。它很脏,但它对我的目的有用:

for col in df.columns:
    try:
        df[col] = df[col].apply(lambda x: float(x.replace('.','').replace(',','.')))
   except:
        pass
Run Code Online (Sandbox Code Playgroud)

编辑:误读了问题,您可能会使用相同的策略,将所有浮点数更改为字符串:)。话又说回来,您可能应该弄清楚为什么它不起作用。如果你让它工作的话,就应该发布它。