Python panda输出浮点值而不是整数



我想将一个矩阵(它非常非常稀疏,有数百万个零和其他几个数字(作为panda数据帧保存到.csv文件中,但数据帧将0保存为0.0(浮点而不是整数(,因此,文件变得非常大。所以我想把0.0保存为0,以减少输出.csv文件的大小。我正在尝试类似的东西:

import pandas
table = [[0.88, 4], [0, 0.5]]
pd = pandas.DataFrame(table, columns = ['C1', 'C2'])
pd.to_csv('output.csv', index = False)
pd

并获得输出:

C1      C2
0   0.88    4.0
1   0.00    0.5

但我希望输出如下:

C1      C2
0   0.88    4
1   0       0.5

由于您使用的是稀疏数据,我想有些列可能只有零。如果您标识任何仅为零的列,则可以直接使用astype将其转换为int。它将向您保证零将保存在.csv文件中。

不幸的是,我不知道如何只更改列中的某些值。

我确实有另一个建议。当表示稀疏对象时,可以只保存(x,y,value((本例适用于稀疏矩阵,但可以扩展(,而不是整个数据帧。如果不知道你的数据是什么样子,就很难准确地说出如何做到这一点。只要知道你可以更有效地表示它,然后将它保存到.csv或用pickle转储它。

最新更新