微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

熊猫数据框为什么显示的数据与存储的数据不同?

如何解决熊猫数据框为什么显示的数据与存储的数据不同?

将“pivot_table”应用到 df,我得到了一个平均值。

df_mean=df.pivot_table(index=['col_1']).sort_index(axis=1,level=1)

当我显示结果数据框的 WIND 列时

df_mean.WIND
Out[418]: 
col_1
P1              76.450000
P2              75.200000
P3              83.680000
P4              84.221429
P5              67.875000
Name: WIND,dtype: float64

为什么当我直接访问元素时会有所不同?

df_mean.WIND[0]
Out[419]: 76.44999999999999

我想把这个四舍五入(小数点后一位),我希望得到 76.5...

我一直在寻找答案,也许与此有关?:

import statistics
df_calculo = pd.DataFrame({"A":[80.8,76.3,78.6,77.1,69.4,67.7,72.4,89.3]})
df_calculo.dtypes 
uu=statistics.mean(df_calculo["A"])
print(uu)#Is EXACT

uu2=df_calculo["A"].mean()
uu2#Is NOT exact

结果:

uu= 76.45
uu2= 76.44999999999999

解决方法

Pandas 中的默认显示精度为 6 位小数。它只是显示舍入。实际值是使用 np.mean() 作为默认 agg_function 计算的。所以这与这里使用的均值类型有关。

Pandas Docs on options:参见“display.precision”

以小数点后位数表示的浮点输出精度,适用于常规格式和科学记数法。类似于 numpy 的精确打印选项

Docs on pivot_table:见“agg_function”

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。