我试图总结在试图收款时打电话后发生的事情。挂断或不回答==0(未付款(不采取行动不算什么打电话、挂断电话然后付款将算作(付款(==1
d={'ID':[1,1,1,2,2,2,3,3,3],
'values':['call','hung up','no answer','non action','call','payment','call','hang up','payment',] }
df=pd.DataFrame(data=d)
df
这里的总数是2付款1个未付款
如果您计算唯一的"id";以及";支付";频率,有帮助吗!
例如:count unique ID=3,Payment Frequency=2,Now,(count unique ID-Payment French(=未付款。
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,1,2,2,2,3,3,3],
'values':['call','hung up','no answer','non action','call','payment','call','hang up','payment',] }
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