Pandas 数据框。为什么显示的数据与存储的数据不同?
Pandas dataframe. Why data displayed is different from the stored one?
将“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”
Floating point output precision in terms of number of places after the decimal, for regular formatting as well as scientific notation. Similar to numpy’s precision print option
和Docs on pivot_table:参见“agg_function”
将“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”
Floating point output precision in terms of number of places after the decimal, for regular formatting as well as scientific notation. Similar to numpy’s precision print option
和Docs on pivot_table:参见“agg_function”