2016-05-09 6 views
1

私は2つのDFを持っています。2つのデータフレームの交差点を見つけて平均を取る -

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

DF2

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 

DF1私は、ユーザーIDに基づいて、2人のDFとの交点を見つけて、残りの変数の平均を見つけたいです。

私の出力があるべき、

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

は、誰もがこれを行うに私を助けることができますか?あなたは内部結合userIDを気にしない場合

おかげ

+0

コードはありますか? – eventHandler

+0

@eventHandler私は、私が望んでいない列を乗算している、パンダでジョイン/マージを試みました。だからこそ、私が試したすべてのものを入れなかったのです。 – Observer

+0

私は 'merge()'を使ってもOKだと思います。平均を計算した後で列を削除することができます –

答えて

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]である可能性があります。

0

まず、それらを1つのデータフレームとして連結し、次にグループ化することができます。最後に共通の要素を取る

>>> 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 
関連する問題