2017-02-15 2 views
1

私は2つのパンダシリーズ、すなわちxとyを持っています。 )(キーを使って2つのパンダシリーズをマージする

user hotel rating  id 
0 1  1253  5 2783_1253 
1 4  589  5 2783_589 
2 5  1270  4 2783_1270 
3 3  1274  4 2783_1274 
4 2  741  5 2783_741 

y.headを与える:

x.headは()を与える

UserID Gender Age Occupation Zip Code 
0  1.0  F 18.0  10.0 48067 
1  2.0  M 56.0  16.0 70072 
2  3.0  M 25.0  15.0 55117 
3  4.0  M 45.0  7.0  2460 
4  5.0  M 25.0  20.0 55455 

は私が必要なのは、これらの2つのユーザー=ユーザーIDの列をマージすることです。

だから、例えば私の最初の行は次のようになります。私はそれを取得する方法

user hotel rating  id   UserID Gender Age Occupation Zip Code 
0 1 1253  5  2783_1253  1.0  F  18.0  10.0  48067 

答えて

2

私はあなたが最初intfloat列を変換しmerge必要があると思う:

y['user'] = y.UserID.astype(int) 
df = pd.merge(x,y, on='user') 
print (df) 
    user hotel rating   id UserID Gender Age Occupation Zip Code 
0  1 1253  5 2783_1253  1.0  2.0 M  56.0 16.0 70072 
1  4 589  5 2783_589  4.0  5.0 M  25.0 20.0 55455 
2  3 1274  4 2783_1274  3.0  4.0 M  45.0 7.0 2460 
3  2 741  5 2783_741  2.0  3.0 M  25.0 15.0 55117 

または両方の列がfloatに変換:

x['UserID'] = x.user.astype(float) 
df = pd.merge(x,y, on='UserID') 
print (df) 
    user hotel rating   id UserID Gender Age Occupation Zip Code 
0  1 1253  5 2783_1253  1.0  2.0 M  56.0 16.0 70072 
1  4 589  5 2783_589  4.0  5.0 M  25.0 20.0 55455 
2  3 1274  4 2783_1274  3.0  4.0 M  45.0 7.0 2460 
3  2 741  5 2783_741  2.0  3.0 M  25.0 15.0 55117 
+0

こんにちは。それが私を助けてくれてありがとう。 –

関連する問題