[英]Differences in result of df.mean() and df['column'].mean()
我只運行以下三行:
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()
, mean
是pd.DataFrame.mean
並且作為單獨的pd.Series
在所有列上進行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
,而float格式是由pandas
控制的。 另一方面, df['derived_3'].mean()
是python原語,不受熊貓控制。
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
導致標量 減少方法
mean
sum
std
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.