2015-03-24 8 views
5

मैं नीचे दो dataframes, df_purchase है (1) और df_login (2)पांडा पर कुंजी त्रुटि विलय (बाएं में शामिल होने)

+--------+-----+--------+------------+--------------------+-------------+--------------------------+ 
|  | 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 |    |       | 
+--------+-----+--------+------------+--------------------+-------------+--------------------------+ 

मैं उम्र, लिंग और साथ क्षेत्र पर df_purchase को df_logins शामिल होने के लिए कोशिश कर रहा हूँ निम्नलिखित पांडा कोड:

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

हालांकि, मैं इस त्रुटि प्राप्त हो रही: KeyError: 'age' किसी भी विचार?

+0

दो तालिकाओं में कोई आम उम्र नहीं है। इसलिए टेबल के बीच कोई छेड़छाड़ नहीं है। –

उत्तर

5

KeyError इस से उत्पन्न होती है:

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

आप विशेष रूप से df_login से सिर्फ एक एकल स्तंभ का चयन किया है, तो आप इस की जरूरत है:

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

मैं यह सोचते कर रहा हूँ कि यह आपके पूरा नहीं हुआ है डेटा के रूप में आपके पास df_login में आयु और क्षेत्र कॉलम में कोई सामान्य मान नहीं है।

संबंधित मुद्दे