取得具有其他df平均值的新df

时间:2019-08-15 07:51:08

标签: pandas

我有1个由未知数量的dfs组成的列表:

df具有相同的维度,具有相同的列名和相同的列值,并且顺序相同:

df1=pd.DataFrame(data=np.transpose([[1,2,3,4],[2,4,6,8]]),index=['A','B','C','D'],columns=['x','y'])
df2=pd.DataFrame(data=np.transpose([[3,3,3,3],[4,4,4,4]]),index=['A','B','C','D'],columns=['x','y'])

我想将n个dfs的值分组为一个新的df,这些值是n个dfs的平均值。

输出

df2=pd.DataFrame(data=np.transpose([[2,2.5,3,3.5],[3,4,5,6]]),index=['A','B','C','D'],columns=['x','y'])

2 个答案:

答案 0 :(得分:3)

每个索引值将meanconcat一起使用:

print (pd.concat([df1, df2]).mean(level=0))
     x    y
A  2.0  3.0
B  2.5  4.0
C  3.0  5.0
D  3.5  6.0

答案 1 :(得分:1)

首先连接数据帧,重置索引以将其用作分组键,然后计算所有列的均值。

leftMap

输出

pd.concat([df1, df2]).reset_index().groupby('index').mean()