2015-03-24 17 views
5

Aşağıda iki dataframes, df_purchase var (1) ve df_login (2)Anahtar hata (sol katılmak) birleştirme

+--------+-----+--------+------------+--------------------+-------------+--------------------------+ 
|  | age | gender | ttp  |  count  | sum(amount) |   region   | 
+--------+-----+--------+------------+--------------------+-------------+--------------------------+ 
| 49427 | 63 | M  | 824.731412 | 2     | 25.00  | Omaha, Nebraska   | 
| 28433 | 49 | M  | 1.166250 | 2     | 41.94  | Catasauqua, Pennsylvania | 
| 4162 | 29 | M  | 5.620949 | 2     | 51.78  | Eagle Center, Iowa  | 
| 18747 | 43 | M  | 153.502072 | 2     | 23.84  | Pacific, Washington  | 
| 45173 | 59 | M  | 0.027257 | 2     | 13.98  | De Soto, Missouri  | 
+--------+-----+--------+------------+--------------------+-------------+--------------------------+ 

+--------+-----+--------+------------+--------------------+-------------+--------------------------+ 
|  | age | gender | count  | region    |    |       | 
| 671766 | 84 | M  | 13900  | New York, New York |    |       | 
| 671166 | 84 | F  | 7619  | New York, New York |    |       | 
| 672209 | 85 | F  | 6483  | New York, New York |    |       | 
| 672671 | 85 | M  | 5808  | New York, New York |    |       | 
| 195201 | 34 | M  | 3817  | New York, New York |    |       | 
+--------+-----+--------+------------+--------------------+-------------+--------------------------+ 

Birlikte yaş, cinsiyet ve bölgeye df_purchase için df_logins katılmaya çalışıyorum aşağıdaki pandalar kodu:

df = pd.merge(df_purchase, df_login[['count']], 
         how='left', on=['age', 'gender', 'region']) 

Ancak, bu hatayı almaya devam: KeyError: 'age' Herhangi düşünceler?

+0

İki tabloda ortak yaş yoktur. Bu nedenle tablolar arasında bir kesişme yoktur. –

cevap

5

KeyError bu kaynaklanmaktadır: Bunun senin tam olmadığını farz ediyorum

df = pd.merge(df_purchase, df_login, 
         how='left', on=['age', 'gender', 'region']) 

: Sen Özellikle df_login sadece tek bir sütun seçtikten

df = pd.merge(df_purchase, df_login[['count']] <- this selects just count column, 
         how='left', on=['age', 'gender', 'region']) 

, buna ihtiyacın df_login'daki yaş ve bölge sütununda ortak değerleriniz olmadığı için verileri.

İlgili konular