Skip to main content
 首页 » 编程设计

python之从一个数据框中获取唯一计数作为 Pandas 中另一个数据框中的值

2025年05月04日21EasonJim

我有两个 pandas 数据框,我想从一个数据框 (responses) 中获取一些唯一的行数作为另一个数据框 (contacts) 中的列值

import pandas as pd 
 
contacts = pd.read_csv('contacts.csv', encoding='ISO-8859-1') 
responses = pd.read_csv('campaign_responses.csv', encoding='ISO-8859-1') 
 
contacts.head() 
 
    contact_id          job_title  country  Email    Webinar 
0   0031B00002cPLuFQAW  manager    US       0        0 
1   0031B00002Z2zMYQAZ  admin      UK       0        0 
2   003a000001nHioCAAS  manager    DE       0        0 

注意:对于所有行,电子邮件和网络研讨会将为 0。它们目前是占位符值。

responses.head() 
 
    campaign_type      contact_id 
0   Email              0031B00002cPLuFQAW 
1   Webinar            0031B00002Z2zMYQAZ 
2   Webinar            0031B00002cPLuFQAW 
3   Webinar            0031B00002cPLuFQAW 
4   Email              003a000001nHioCAAS 
5   Email              003a000001nHioCAAS 

我想统计每个联系人对每种事件类型的响应次数,作为联系人数据框中的一个属性。

决赛contacts数据框应该是这样的(基于上面的数据)

    contact_id          job_title  country  Email    Webinar 
0   0031B00002cPLuFQAW  manager    US       1        2 
1   0031B00002Z2zMYQAZ  admin      UK       0        1 
2   003a000001nHioCAAS  manager    DE       2        0 

请您参考如下方法:

看来你需要

pd.crosstab(df.contact_id,df.campaign_type) 
Out[37]:  
campaign_type       Email  Webinar 
contact_id                         
0031B00002Z2zMYQAZ      0        1 
0031B00002cPLuFQAW      1        2 
003a000001nHioCAAS      2        0