to_csv()用其他分数写值

时间:2019-02-04 19:36:03

标签: python pandas csv dataframe

我正在使用to_csv()方法将数据帧写入 .csv 文件。我有一个名为emotion的变量,它引用一个数据帧,并且我正在像这样使用to_csv()

 emotion.to_csv(file_name,encoding='utf-8', index = False) 
 # file_name holds a string of a full path of the file which is intended to create

此数据帧中有超过15.000行数据,当我打开检查通过to_csv方法创建的.csv文件时,大多数行看起来都很好。但是很少有例外。您可以从下面的 .csv 文件中看到很多行;

  

2.8641,0.2737,38.18,73,97,291664   3.1672,0.2688,38.21,73,97,291667   3.4115,0.2786,38.11,73,97,291672   3.3675,0.2737,38.18,73,97,291675    3.1719999999999997 ,0.2737,38.02,73,97,291678   2.7761,0.2737,38.15,73,97,291682   2.39,0.2688,38.18,73,97,291685   2.0674,0.2835,38.11,73,97,291688

正如我上面在数据框值上使用粗体字体指出的那样, 3.1719999999999997 还有一个额外的分数。在原始数据中,应为 3.171 。您能帮我解决这个问题吗?预先感谢。

2 个答案:

答案 0 :(得分:1)

请参见https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html

to_csv 具有可以设置的漂亮的 float_format 关键字参数。

emotion.to_csv(file_name, encoding='utf-8', index=False, float_format="%.3f") 

答案 1 :(得分:0)

这可能是熊猫从csv提取值时进行的转换。 如果要限制数据框显示的位数,可以使用:

 pd.options.display.float_format = '${:,.3f}'.format

这会将数字位数限制为3。