2024-09-30 22:10:09 发布
网友
在Python中,我正在将Pandas数据帧写入csv文件,并希望将十进制分隔符改为逗号(,)。像这样:
,
results.to_csv('D:/Data/Kaeashi/BigData/ProcessMining/Voorbeelden/Voorbeeld/CaseEventsCel.csv', sep=';', decimal=',')
但是csv文件中的十进制分隔符仍然是. 为什么?我做错了什么?在
.
不知怎么的,我也没能让这个工作起来。我总是用下面的脚本来纠正它。虽然很脏,但对我来说很管用:
for col in df.columns: try: df[col] = df[col].apply(lambda x: float(x.replace('.','').replace(',','.'))) except: pass
编辑:误读了这个问题,你可能会用同样的策略,把你所有的浮点数都改成字符串:)。再说一次,你应该弄清楚为什么它不起作用。如果你能用的话,就把它寄出去。在
直到0.16.0才添加此功能
Added decimal option in to_csv to provide formatting for non-‘.’ decimal separators (GH781)
将pandas升级到更新的版本,就可以了。下面的代码使用10 minute tutorial和pandas版本0.18.1
>>> import pandas as pd >>> import numpy as np >>> dates = pd.date_range('20130101', periods=6) >>> df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD')) >>> df A B C D 2013-01-01 -0.157833 1.719554 0.564592 -0.228870 2013-01-02 -0.316600 1.545763 -0.206499 0.793412 2013-01-03 1.905803 1.172803 0.744010 1.563306 2013-01-04 -0.142676 -0.362548 -0.554799 -0.086404 2013-01-05 1.708246 -0.505940 -1.135422 0.810446 2013-01-06 -0.150899 0.794215 -0.628903 0.598574 >>> df.to_csv("test.csv", sep=';', decimal=',')
这会产生一个“测试.csv“文件如下所示:
如果decimal参数不起作用,可能是因为列的类型是object。(检查最后一行中的dtype值,df[column_name])
decimal
object
dtype
df[column_name]
如果某些行的值无法解析为数字,则会发生这种情况。在
可以强制列更改类型: Change data type of columns in Pandas。 但这可能会使您丢失该列中的非数值数据。在
不知怎么的,我也没能让这个工作起来。我总是用下面的脚本来纠正它。虽然很脏,但对我来说很管用:
编辑:误读了这个问题,你可能会用同样的策略,把你所有的浮点数都改成字符串:)。再说一次,你应该弄清楚为什么它不起作用。如果你能用的话,就把它寄出去。在
直到0.16.0才添加此功能
将pandas升级到更新的版本,就可以了。下面的代码使用10 minute tutorial和pandas版本0.18.1
这会产生一个“测试.csv“文件如下所示:
^{pr2}$如果
decimal
参数不起作用,可能是因为列的类型是object
。(检查最后一行中的dtype
值,df[column_name]
)如果某些行的值无法解析为数字,则会发生这种情况。在
可以强制列更改类型: Change data type of columns in Pandas。 但这可能会使您丢失该列中的非数值数据。在
相关问题 更多 >
编程相关推荐