2017-02-15 77 views
1

我有兩個熊貓系列,分別是x和y。使用密鑰合併兩個熊貓系列

x.head()給出:

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()給出:

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 

我需要的是合併這兩個地方的用戶=用戶名的列。

因此,例如,我的第一行應該是這樣的:

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

我想你需要先float列轉換爲int,然後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

嗨。感謝它幫助我。 –