我有两个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
有人可以帮我这么做吗?
由于
答案 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