我正在合并两个数据集:
th_users_clean
有12,000行。
th
有207,917行。
我执行了几种合并类型(内部,左侧等),但似乎只能维护207,917行。我确实希望将来自th
的信息添加到th_users_clean
上,这意味着我想要一个最终的12,000行合并表。有谁知道是什么原因引起了这个问题?
每个数据框的头在下面。我想将它们合并到user_id
上。
最终输出应为12,000行14列。
full_df = th.merge(th_users_clean, on = 'user_id')
th.head(2)
time_stamp user_id visited visits_7_days adopted_users
0 2014-04-22 03:53:30 1 1 1.0 0
1 2013-11-15 03:45:04 2 1 1.0 0
th_users_clean.head(2)
time_stamp user_id visited visits_7_days adopted_users creation_time name email creation_source last_session_creation_time opted_in_to_mailing_list enabled_for_marketing_drip org_id invited_by_user_id
0 2014-04-22 03:53:30 1 1 1.0 0 2014-04-22 03:53:30 Clausen August AugustCClausen@yahoo.com GUEST_INVITE 2014-04-22 03:53:30 1 0 11 10803.0
答案 0 :(得分:1)
您要连接数据帧,而不是合并它们。串联就像附加到末尾。
concat = pandas.concat([th, th_users_clean])
输出:
time_stamp user_id visited visits_7_days adopted_users creation_time name
0 2014-04-22 03:53:30 1 1 1.0 0
1 2013-11-15 03:45:04 2 1 1.0 0
2 2014-04-22 03:53:30 1 1 1.0 0 2014-04-22 03:53:30 Clausen August
合并正在将th_users_clean
的列添加到th
。
例如,如果要将th_users_clean
的列合并到th
上的time_stamp
;
merge = pandas.merge(th, th_users_clean, on='time_stamp')
输出:
time_stamp user_id visited visits_7_days adopted_users creation_time name
0 2014-04-22 03:53:30 1 1 1.0 0 2014-04-22 03:53:30 Clausen Augus
1 2013-11-15 03:45:04 2 1 1.0 0
此处,time_stamp
中的th
与th_users_clean
匹配,并且th_users_clean
行中的所有值都添加到了th
。