我正在使用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 。您能帮我解决这个问题吗?预先感谢。
答案 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。