我有两个 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
