0

使用 Python 的 pandas,我正在从 CSV 文件中读取以下内容:

2007-03-30 16:34:15.778000,1.96805,1.968,2.4,0.8

使用

 df = pd.read_csv(txtFileName, parse_dates=('datetime'), index_col=0, header=None,
                   names=[ 'datetime','bid', 'ask', 'bidvolume', 'askvolume'])

df.dtypes给;

bid          float64
ask          float64
bidvolume    float64
askvolume    float64
dtype: object

然后我使用将数据写入另一个 csv

df.to_csv(txtFileName2,header=False)

该行显示为;

2007-03-30 16:34:15.778000,1.96805,1.9680000000000002,2.4,0.8

我知道这是由于浮动的工作方式而发生的。

我应该使用什么数据类型来防止这种情况?

bid并且ask需要 5 位小数

bidVolume并且askVolume需要小数点后 1 位

4

1 回答 1

2

您可以根据需要使用该float_format参数来格式化浮点值。请参阅文档

例如:

df.to_csv('your_file', float_format='%.4f')
于 2013-09-15T15:55:37.427 回答