我只运行以下三行:
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 发布于 2017-10-04 19:36:50
pd.DataFrame 方法与 pd.Series 方法
在df.mean()中,mean是pd.DataFrame.mean,作为单独的pd.Series对所有列进行操作。返回的是一个pd.Series,其中df.columns是新的索引,每个列的平均值是值。在您的初始示例中,df只有一个列,因此结果是一个长度--一个序列,其中索引是该列的名称,值是该列的平均值。
在df['derived_3'].mean()中,mean是pd.Series.mean,df['derived_3']是pd.Series。pd.Series.mean的结果将是标量。
显示差异
之所以显示不同,是因为df.mean的结果是pd.Series,浮点格式由pandas控制。另一方面,df['derived_3'].mean()是蟒蛇的原始生物,不受熊猫的控制。
import numpy as np
import pandas as pd标量
np.pi
3.141592653589793pd.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.Seriespd.Series会导致标量减少的方法
meansumstdhttps://stackoverflow.com/questions/46572679
复制相似问题