PythoN写入csv文件不显示小数部分
时间: 2024-10-20 09:16:24 浏览: 38
当你在Python中使用内置模块`pandas`或`csv`来写入CSV文件,有时可能会遇到数据的小数部分被截断的问题。这通常是因为默认设置下,CSV文件采用的是文本字符串表示,而不是数值形式,所以浮点数会被转换成固定精度的字符串。
例如,如果你有如下的代码:
```python
import csv
data = {'name': ['Alice', 'Bob'], 'score': [3.14159, 2.718]}
with open('output.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(data.values())
```
结果的CSV文件会像这样:
```
"name","score"
"Alice","3.14159"
"Bob","2.718"
```
这里的小数部分被四舍五入了。
要保留小数部分,你可以将数据先转化为`str`格式,或者使用`pandas`库更方便地操作:
```python
import pandas as pd
data = {'name': ['Alice', 'Bob'], 'score': [3.14159, 2.718]}
df = pd.DataFrame(data)
# 或者直接写入并保持原样
df.to_csv('output.csv', index=False)
# 如果你想控制精度,可以这样做:
pd.options.display.float_format = '{:.4f}'.format
df.to_csv('output.csv', index=False)
```
在这里,`{:.4f}`会保留四位小数。
阅读全文