2015-03-24 26 views
5

Tôi có hai dataframes dưới đây, df_purchase (1) và df_login (2)lỗi chính về gấu trúc hợp nhất (trái tham gia)

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

Tôi đang cố gắng tham gia df_logins để df_purchase về tuổi, giới tính và khu vực với mã sau gấu trúc:

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

Tuy nhiên, tôi tiếp tục nhận được lỗi này: KeyError: 'age' Bất kỳ suy nghĩ?

+0

Không có độ tuổi chung trong hai bảng. Do đó, không có giao lộ giữa các bảng. –

Trả lời

5

Các KeyError phát sinh từ này:

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

Bạn đã chọn đặc biệt chỉ một cột duy nhất từ ​​df_login, bạn cần điều này:

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

Tôi giả định rằng điều này không hoàn chỉnh của bạn dữ liệu vì bạn không có giá trị chung trong cột tuổi và khu vực trong df_login.

Các vấn đề liên quan