Pandas通过取列之间的平均值来合并两个数据帧

时间:2017-08-09 10:52:26

标签: python-3.x pandas dataframe group-by concat

我正在使用Pandas DataFrames,并希望在两者之间取平均值。我希望采用相同名称的列之间的平均值。 例如

DF1

    time     x    y     z
 0     1  1.25  2.5  0.75
 1     2  2.75  2.5  3.00
 2     3  1.50  2.5  1.25
 3     4  3.00  2.5  3.50
 4     5  0.50  2.5  2.25

DF2

    time     x    y     z
 0     2  0.75  2.5  1.75
 1     3  3.00  2.5  3.00
 2     4  1.25  2.5  0.25
 3     5  3.50  2.5  2.00
 4     6  2.25  2.5  2.25

我正在寻找的结果是

DF3

    time     x    y     z
 0     1  1.25  2.5  0.75
 1     2  1.75  2.5  2.375
 2     3  2.25  2.5  2.125
 3     4  2.125 2.5  1.875
 4     5  2.00  2.5  2.125
 5     6  2.25  2.5  2.25

在Pandas中有一种简单的方法,我可以使用合并功能或类似功能吗? 我正在寻找一种方法,而无需指定列的名称。

1 个答案:

答案 0 :(得分:2)

我认为您需要concat + groupby并汇总mean

df = pd.concat([df1, df2]).groupby('time', as_index=False).mean()
print (df)
   time      x    y      z
0     1  1.250  2.5  0.750
1     2  1.750  2.5  2.375
2     3  2.250  2.5  2.125
3     4  2.125  2.5  1.875
4     5  2.000  2.5  2.125
5     6  2.250  2.5  2.250