我在文本文件中有以下格式的文件,我试图读入一个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做些什么,但我不知道应该在哪里使用它.
解决方法:
#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
编辑:(谢谢Mark Dickinson):
Pandas uses a dedicated decimal-to-binary converter that sacrifices perfect accuracy for the sake of speed. Passing
float_precision='round_trip'
to read_csv fixes this. See the 07002 for more.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。