如何解决求和每个唯一ID的电话呼叫后一次操作发生的次数
我试图总结一个电话后试图收取款项的情况。 挂断电话或没有答案= = 0(不付款) 不采取行动不算什么 拨打电话,挂断电话,然后付款将计为(付款)== 1
d={'ID':[1,1,2,3,3],\
'values':['call','hung up','no answer','non action','call','payment','hang up',] }
df=pd.DataFrame(data=d)
df
这里的总数是 2付款 1不付款
解决方法
如果您计算唯一的“ id”和“支付”频率,有帮助吗!
例如:计数唯一ID = 3,付款频率= 2,现在,(计数唯一ID-付款频率)=不付款。
Total_ID = len(df['ID'].value_counts())
Total_ID
在您的情况下,这将返回3
Payment = df.groupby('values').count()
Payment = Payment.loc['payment']['ID']
Payment
在您的情况下,这将返回2
Non_Payment = Total_ID - Payment
Non_Payment
这将返回1
,您可以使用交叉表更好地可视化数据:
d={'ID':[1,1,2,3,3],\
'values':['call','hung up','no answer','non action','call','payment','hang up',] }
df=pd.DataFrame(data=d)
df
df_ct = pd.crosstab(df['ID'],df['values'])
df_ct['payment'].sum() #Number of payments
df_ct['payment'].count()-df_ct['payment'].sum() #Number of non-payments
df_ct的输出:
values call hang up hung up no answer non action payment
ID
1 1 0 1 1 0 0
2 1 0 0 0 1 1
3 1 1 0 0 0 1
2 # Payments
1 # Non payment
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。