gpt4 book ai didi

python - df.mean() 和 df ['column' ].mean() 结果的差异

转载 作者:行者123 更新时间:2023-11-28 22:24:08 29 4
gpt4 key购买 nike

我只运行以下三行:

df = pd.read_hdf('data.h5')
print(df.mean())
print(df['derived_3'].mean())

第一个 print 列出了每一列的所有单独均值,其中一个是

derived_3        -5.046012e-01

第二个 print 仅给出这一列的平均值并给出结果

-0.504715

尽管使用和不使用科学记数法有所不同,但这些值有所不同 - 为什么会这样?


使用其他方法的示例

sum() 执行相同的操作会得到以下结果:

derived_3        -7.878262e+05

-788004.0

同样,结果略有不同,但 count() 返回相同的结果:

derived_3         1561285

1561285

此外,df.head() 的结果:

   id  timestamp  derived_0  derived_1  derived_2  derived_3  derived_4  \
0 10 0 0.370326 -0.006316 0.222831 -0.213030 0.729277
1 11 0 0.014765 -0.038064 -0.017425 0.320652 -0.034134
2 12 0 -0.010622 -0.050577 3.379575 -0.157525 -0.068550
3 25 0 NaN NaN NaN NaN NaN
4 26 0 0.176693 -0.025284 -0.057680 0.015100 0.180894

fundamental_0 fundamental_1 fundamental_2 ... technical_36 \
0 -0.335633 0.113292 1.621238 ... 0.775208
1 0.004413 0.114285 -0.210185 ... 0.025590
2 -0.155937 1.219439 -0.764516 ... 0.151881
3 0.178495 NaN -0.007262 ... 1.035936
4 0.139445 -0.125687 -0.018707 ... 0.630232

technical_37 technical_38 technical_39 technical_40 technical_41 \
0 NaN NaN NaN -0.414776 NaN
1 NaN NaN NaN -0.273607 NaN
2 NaN NaN NaN -0.175710 NaN
3 NaN NaN NaN -0.211506 NaN
4 NaN NaN NaN -0.001957 NaN

technical_42 technical_43 technical_44 y
0 NaN -2.0 NaN -0.011753
1 NaN -2.0 NaN -0.001240
2 NaN -2.0 NaN -0.020940
3 NaN -2.0 NaN -0.015959
4 NaN 0.0 NaN -0.007338

最佳答案

pd.DataFrame 方法与 pd.Series 方法

df.mean() 中,meanpd.DataFrame.mean 并作为单独的 pd 对所有列进行操作。系列。返回的是一个 pd.Series,其中 df.columns 是新索引,每列的平均值是值。在您的初始示例中,df 只有一列,因此结果是一个长度系列,其中索引是该列的名称,值是该列的平均值。

df['derived_3'].mean()中,meanpd.Series.meandf[' derived_3'] 是一个 pd.Seriespd.Series.mean 的结果将是一个标量。


显示差异

显示的不同是因为df.mean的结果是一个pd.Series,而float格式是由pandas控制的。另一方面,df['derived_3'].mean() 是 python 原语,不受 pandas 控制。

import numpy as np
import pandas as pd

标量

np.pi

3.141592653589793

pd.Series

pd.Series(np.pi)

0 3.141593
dtype: float64

使用不同的格式

with pd.option_context('display.float_format', '{:0.15f}'.format):
print(pd.Series(np.pi))

0 3.141592653589793
dtype: float64

减少
将这些不同的方法视为降维或不降维是很有用的。或者同义词,聚合或转换。

  • 减少 pd.DataFrame 产生 pd.Series
  • 减少 pd.Series 得到一个标量

减少的方法

  • 意思是
  • 总和
  • 标准

关于python - df.mean() 和 df ['column' ].mean() 结果的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46572679/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com