首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从下面的单元格中减去两个字符串,并分别为熊猫索引或用户ID。

从下面的单元格中减去两个字符串,并分别为熊猫索引或用户ID。
EN

Stack Overflow用户
提问于 2020-12-10 08:53:23
回答 1查看 32关注 0票数 0

输入:

代码语言:javascript
复制
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']) 

产出:

代码语言:javascript
复制
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相比时,这种纸张在无纸化模式中为零。

如果有任何关心,请告诉我

EN

回答 1

Stack Overflow用户

发布于 2020-12-10 10:08:05

数据:

代码语言:javascript
复制
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:

代码语言:javascript
复制
   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

期望产出:

代码语言:javascript
复制
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:

代码语言:javascript
复制
   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       RF
代码语言:javascript
复制
dic = {}
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'] = L

wdf:

代码语言:javascript
复制
   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       RF
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65231286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档