Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 熊猫通过获取列之间的平均值来合并两个数据帧_Python 3.x_Pandas_Dataframe_Group By_Concat - Fatal编程技术网

Python 3.x 熊猫通过获取列之间的平均值来合并两个数据帧

Python 3.x 熊猫通过获取列之间的平均值来合并两个数据帧,python-3.x,pandas,dataframe,group-by,concat,Python 3.x,Pandas,Dataframe,Group By,Concat,我正在使用Pandas数据帧,并希望在两个数据帧之间取平均值。我希望取同名列之间的平均值。 比如说 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

我正在使用Pandas数据帧,并希望在两个数据帧之间取平均值。我希望取同名列之间的平均值。 比如说

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中有没有一种简单的方法可以做到这一点,使用merge函数或类似的函数? 我正在寻找一种不必指定列名称的方法。

我认为您需要+和聚合:


pd.merge(df1,df2,left_index=True,right_index=True,how='outer').mean(axis=1)也会这样做吗?或者我在这里弄错了?@Uvar-不幸的不是,因为在
merge
-
['time_x',x_x',y_x',z_x',time_y',x_y',z_y']
谢谢!我试过了,但忘记了df1、df2周围的方括号[]@jezrael@Uvar您的操作只剩下一列。0 1.56250 1 2.71875 2 2.03125 3 3.25000 4 2.90625那么我确实错了。感谢您提供的额外见解!:)
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