在 pandas 中使用 read_csv 时精度丢失

2023-12-02

我在文本文件中有以下格式的文件,我试图将其读入 pandas 数据帧。

895|2015-4-23|19|10000|LA|0.4677978806|0.4773469340|0.4089938425|0.8224291972|0.8652525793|0.6829942860|0.5139162227|

如你所见,有10输入文件中浮点数之后的整数。

df = pd.read_csv('mockup.txt',header=None,delimiter='|')

当我尝试将其读入数据帧时,我没有得到最后 4 个整数

df[5].head()

0    0.467798
1    0.258165
2    0.860384
3    0.803388
4    0.249820
Name: 5, dtype: float64

如何获得输入文件中存在的完整精度?我有一些需要执行的矩阵运算,因此我无法将其转换为字符串。

我发现我必须做点什么dtype但我不确定应该在哪里使用它。


这只是显示问题,请参阅docs:

#temporaly set display precision
with pd.option_context('display.precision', 10):
    print df

     0          1   2      3   4             5            6             7   \
0  895  2015-4-23  19  10000  LA  0.4677978806  0.477346934  0.4089938425   

             8             9            10            11  12  
0  0.8224291972  0.8652525793  0.682994286  0.5139162227 NaN    

编辑:(谢谢马克·迪金森):

Pandas 使用专用的十进制到二进制转换器,为了速度而牺牲了完美的精度。通过float_precision='round_trip'read_csv 修复了这个问题。请参阅文档了解更多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 pandas 中使用 read_csv 时精度丢失 的相关文章

随机推荐