输入:
wdf = pd.DataFrame([[101, 1, 'reg'],
[101,0,'VA,reg,pca'],
[102,1, 'Paymode,reg,va,fa'],
[102, 0, 'roy,pca'],
[103, 1, 'reg,pca,va,GA'],
[103, 0, 'PCA,reg,va,RF']
]
, columns=['cus_ID','Paperlessmode', 'types of paper']) 产出:
out_df = pd.DataFrame([[101, 1, 'reg','VA,pca'],
[101,0,'VA,reg,pca','VA,pca'],
[102,1, 'Paymode,reg,va,fa','roy,pca'],
[102, 0, 'roy,pca','roy,pca'],
[103, 1, 'reg,pca,va,GA','RF'],
[103, 0, 'PCA,reg,va,RF','RF']
]
, columns=['cus_ID','Paperlessmode', 'types of paper','result'])我期待着这样的事情:
wdf的结果‘=wdf’无纸模式‘== 1 (-) wdf’‘==0,映射为(cus_ID)
我想识别额外类型的纸张,当与Python3.6中每个客户id在无纸化模式下的1相比时,这种纸张在无纸化模式中为零。
如果有任何关心,请告诉我
发布于 2020-12-10 10:08:05
数据:
wdf = pd.DataFrame([[101, 1, 'reg'],
[101,0,'VA,reg,pca'],
[102,1, 'Paymode,reg,va,fa'],
[102, 0, 'roy,pca'],
[103, 1, 'reg,pca,va,GA'],
[103, 0, 'PCA,reg,va,RF']
]
, columns=['cus_ID','Paperlessmode', 'types of paper']) wdf:
cus_ID Paperlessmode types of paper
0 101 1 reg
1 101 0 VA,reg,pca
2 102 1 Paymode,reg,va,fa
3 102 0 roy,pca
4 103 1 reg,pca,va,GA
5 103 0 PCA,reg,va,RF期望产出:
out_df = pd.DataFrame([[101, 1, 'reg','VA,pca'],
[101,0,'VA,reg,pca','VA,pca'],
[102,1, 'Paymode,reg,va,fa','roy,pca'],
[102, 0, 'roy,pca','roy,pca'],
[103, 1, 'reg,pca,va,GA','RF'],
[103, 0, 'PCA,reg,va,RF','RF']
]
, columns=['cus_ID','Paperlessmode', 'types of paper','result'])out_df:
cus_ID Paperlessmode types of paper result
0 101 1 reg VA,pca
1 101 0 VA,reg,pca VA,pca
2 102 1 Paymode,reg,va,fa roy,pca
3 102 0 roy,pca roy,pca
4 103 1 reg,pca,va,GA RF
5 103 0 PCA,reg,va,RF RFdic = {}
for i in [0,1]:
f = wdf.groupby(["cus_ID", "Paperlessmode"]).apply(lambda x:x.to_dict()).unstack()[i].apply(lambda x:x['types of paper']).to_list()
dic[i] = [list(i.values())[0] for i in f]
L = []
for f_0, f_1 in zip(dic.get(0), dic.get(1)):
i_0 = f_0.split(",")
i_1 = f_1.split(",")
L += [','.join([i for i in i_0 if not i.lower() in [ii.lower() for ii in i_1]])]*2
wdf['result'] = Lwdf:
cus_ID Paperlessmode types of paper result
0 101 1 reg VA,pca
1 101 0 VA,reg,pca VA,pca
2 102 1 Paymode,reg,va,fa roy,pca
3 102 0 roy,pca roy,pca
4 103 1 reg,pca,va,GA RF
5 103 0 PCA,reg,va,RF RFhttps://stackoverflow.com/questions/65231286
复制相似问题