excel = pd.read_csv("EH_damages.csv")
您好!
我使用上面的代码将csv文件读入python。但原始Excel中的0.289798953
已更改为0.289799
。即使我在excel中将数字保存到文本模式,python仍然将其读取为float,并且数字的位数较少,如0.289799
。
我的代码出了什么问题?谢谢!!
答案 0 :(得分:3)
并非所有小数都可以由浮点数精确表示,但似乎并非如此 是这里的主要问题。您所看到的仅仅是Pandas格式化的方式 打印时默认使用DataFrames。存储在DataFrame中的实际浮点数 可能有更多的数字。
例如,使用此DataFrame:
import pandas as pd
df = pd.DataFrame({'foo':[0.289798953]})
你看到了:
print(df)
# foo
# 0 0.289799
但实际浮动值仍为0.289798953
:
print(df.ix[0, 'foo'])
# 0.289798953
您可以通过设置:
告诉Pandas在小数点后显示9位数字pd.options.display.float_format = '{:.9f}'.format
或,cᴏʟᴅsᴘᴇᴇᴅ suggests,pd.set_option('precision', 9)
。
然后打印DataFrame显示:
print(df)
# foo
# 0 0.289798953
您可以详细了解可用的options here。