python熊猫合并问题

时间:2020-06-05 16:03:08

标签: python pandas dataframe

我正在合并两个数据集:

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

1 个答案:

答案 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中的thth_users_clean匹配,并且th_users_clean行中的所有值都添加到了th