数据帧的平均值

Kar*_*rim 3 python dataframe pandas

有没有直接的方法来取多个数据帧的平均值(例如多次运行模拟)?我使用的一种方法是使用 3 个数据帧(df1、df2、df3),但在拥有大量数据帧时并不是最有效的方法是:

(df1+df2+df3)/3
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉 Python 做一些更直接的事情mean(df1,df2,df3)

jez*_*ael 5

为避免concat将所有数据转换为 numpy 数组并使用meanby axis=0,最后将输出转换为DataFrame构造函数:

df1 = pd.DataFrame({
         'A':[4,5,4],
         'B':[7,8,90],
})

df2 = pd.DataFrame({
         'A':[4,50,4],
         'B':[7,8,9],
})

df3 = pd.DataFrame({
         'A':[40,5,4],
         'B':[7,8,9],
})

print ((df1+df2+df3)/3)
      A     B
0  16.0   7.0
1  20.0   8.0
2   4.0  36.0

dfs = [df1, df2, df3]
df = pd.DataFrame(np.array([x.to_numpy() for x in dfs]).mean(axis=0), 
                  index=df1.index, 
                  columns=df1.columns)
print (df)
      A     B
0  16.0   7.0
1  20.0   8.0
2   4.0  36.0
Run Code Online (Sandbox Code Playgroud)

对于较旧的熊猫版本更改DataFrame.to_numpyDataFrame.values

df = pd.DataFrame(np.array([x.values for x in dfs]).mean(axis=0), 
                  index=df1.index, 
                  columns=df1.columns)
Run Code Online (Sandbox Code Playgroud)