DataFrame 中所有组合的相同计算

Same calculation for all combinations in DataFrame

我得到了如下数据框,

import pandas as pd
df = pd.DataFrame({'CITY': ['A','B','C','A','C','B'], 
                   'MAKE_NAME': ['SO','OK','CO','LU','CO','OK'],
                   'USER' : ['JK','JK','MK','JK','JK','JK'],
                   'RESULT_CODE' : ['Y','Y','N','N','Y','Y'],
                   'VALID' : [1,1,1,1,1,0],
                   'COUNT' : [1,1,1,1,1,1] })

我想计算双倍、三倍和四倍的所有组合的 valid/count。我也想获得数据框的结果。

例如下面的 double 结果,

三元组的结果也如下所示,

谢谢大家,

您可以在下面找到解决方案。

import pandas as pd
df = pd.DataFrame({'CITY': ['A','B','C','A','C','B'], 
                   'MAKE_NAME': ['SO','OK','CO','LU','CO','OK'],
                   'USER' : ['JK','JK','MK','JK','JK','JK'],
                   'RESULT_CODE' : ['Y','Y','N','N','Y','Y'],
                   'VALID' : [1,1,1,1,1,0],
                   'COUNT' : [1,1,1,1,1,1] })
for i in df.columns:
    for j in df.columns:
        for k in df.columns:
            for l in df.columns:


                try:
                    a1 = df.groupby([i,j,k,l], as_index=False, sort=True, group_keys=True)[['VALID','COUNT']].count()
                    a1['RATE'] = a1.VALID / a1.COUNT
                    print(a1)          
                except Exception:
                    pass