找到两个Dataframes之间的交集并采用mean-Python

时间:2016-05-09 02:25:04

标签: python python-2.7 pandas

我有两个DF。

DF1

userID  time_taken  Score
1          65         5
2          25         6
3          78         4
4          45         7
5          98         8
6          65         9
7          24         2
8          21         5
9          35         6
10         79         3

DF2

userID  time_taken  Score
1           78        7
4           54        8
7           23        5
10          96        4

我想基于userID找到两个DF之间的交集,并找到其余变量的平均值。

我的输出应该是,

userID  time_taken  Score
1          71.5       6
4          49.5      7.5
7          23.5      3.5
10         87.5      3.5

有人可以帮我这么做吗?

由于

2 个答案:

答案 0 :(得分:1)

print pd.concat([df1[df1['userID'].isin(df2['userID'])], df2]).groupby('userID').mean()

        time_taken  Score
userID                   
1             71.5    6.0
4             49.5    7.5
7             23.5    3.5
10            87.5    3.5
如果你不介意[df1[df1['userID'].isin(df2['userID']内部联接,

[df1, df2]可能是userID

答案 1 :(得分:0)

首先,您可以将它们作为单个数据框连接在一起,然后再组合。最后采取共同的元素

>>> index_common = set(df1['userID']).intersection(df2['userID'])
>>> print pd.concat([df2, df1]).groupby(['userID']).mean().ix[index_common]

        time_taken  Score
userID                   
1             71.5    6.0
10            87.5    3.5
4             49.5    7.5
7             23.5    3.5