Python 按中的id向列组添加类别
我有一个df,如下所示。共有4个政党,它们向选民发送电子邮件,并注明是否由选民打开Python 按中的id向列组添加类别,python,pandas,data-wrangling,Python,Pandas,Data Wrangling,我有一个df,如下所示。共有4个政党,它们向选民发送电子邮件,并注明是否由选民打开 ID Party Emails_Sent Emails_Opened A21 2 3 1 A24 4 1 0 A21 1 5 0 A21 3 1 1 A27 3
ID Party Emails_Sent Emails_Opened
A21 2 3 1
A24 4 1 0
A21 1 5 0
A21 3 1 1
A27 3 2 1
A27 2 1 0
并非所有政党都向所有选民(ID)发送电子邮件。但是,我想将所有政党都包括在政党专栏中,并将“0”指定为电子邮件,并在未联系到下面这样的选民时打开
ID Party Emails_Sent Emails_Opened
A21 1 5 0
A21 2 3 1
A21 3 1 1
A21 4 0 0
A24 1 0 0
A24 2 0 0
A24 3 0 0
A24 4 1 0
A27 1 0 0
A27 2 1 0
A27 3 2 1
A27 4 0 0
Am not sure how to approach this, any help is appreciated. Thanks
那么,让我们试一下:
将熊猫作为pd导入
df=pd.DataFrame(
{'ID':{0:A21',1:A24',2:A21',3:A21',4:A27',5:A27'},
“党”:{0:2,1:4,2:1,3:3,4:3,5:2},
“发送的电子邮件”:{0:3,1:1,2:5,3:1,4:2,5:1},
“电子邮件已打开”:(0:1、1:0、2:0、3:1、4:1、5:0})
#枢轴然后堆叠
df=df.pivot_表(index='ID',columns='Party',
值=['Emails\u Sent'、'Emails\u Opened'],
fill_value=0.stack().reset_index()
#重新排列列
df=df[['ID','Party','Emails\u Sent','Emails\u Opened']]
打印(df.to_字符串(索引=False))
输出:
ID Party Emails_Sent Emails_Opened
A21 1 5 0
A21 2 3 1
A21 3 1 1
A21 4 0 0
A24 1 0 0
A24 2 0 0
A24 3 0 0
A24 4 1 0
A27 1 0 0
A27 2 1 0
A27 3 2 1
A27 4 0 0