求出每个唯一ID在打电话后执行操作的次数



我试图总结在试图收款时打电话后发生的事情。挂断或不回答==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

最新更新