根据熊猫中其他两个列的匹配值创建新列

丰克-蒙克

以下是pandas data frame我拥有的

           index             name_matches dist_matches
38  PO1000000345                  M-00346      M-00346
39  PO1000000352                               M-00804
40  PO1000000354                  M-00196      M-00196
41  PO1000000355                  M-00514      M-00514
42  PO1000000382          M-00353,M-00354      M-00354
43  PO1000000411                                      
44  PO1000000451                                      
45  PO1000000512                               M-00680
46  PO1000000530                  M-00089             
47  PO1000000531                  M-00087      M-00087
48  PO1000000553  M-00917,M-00920,M-00922      M-00920

我正在尝试获取一个新的列(comb_matches),该会提取出name_matchesdist_matches列中的匹配值有时,列中会有一个或多个用逗号分隔的值。我想要获取的输出示例如下所示。

           index             name_matches dist_matches  comb_matches
38  PO1000000345                  M-00346      M-00346       M-00346
39  PO1000000352                               M-00804
40  PO1000000354                  M-00196      M-00196       M-00196
41  PO1000000355                  M-00514      M-00514       M-00514
42  PO1000000382          M-00353,M-00354      M-00354       M-00354
43  PO1000000411                                      
44  PO1000000451                                      
45  PO1000000512                               M-00680
46  PO1000000530                  M-00089             
47  PO1000000531                  M-00087      M-00087       M-00087
48  PO1000000553  M-00917,M-00920,M-00922      M-00920       M-00920

有没有简单的方法来获得以上?

BEN_YO

使用str.split之前isin然后我们将布尔值实现为np.where

Bool=df.name_matches.str.split(',',expand=True).isin(df.dist_matches).any(1)    
df['comb_match']=np.where(Bool,df.dist_matches,'')
df
Out[520]: 
           index             name_matches dist_matches comb_match
38  PO1000000345                  M-00346      M-00346    M-00346
39  PO1000000352                               M-00804           
40  PO1000000354                  M-00196      M-00196    M-00196
41  PO1000000355                  M-00514      M-00514    M-00514
42  PO1000000382          M-00353,M-00354      M-00354    M-00354
43  PO1000000411                                                 
44  PO1000000451                                                 
45  PO1000000512                               M-00680           
46  PO1000000530                  M-00089                        
47  PO1000000531                  M-00087      M-00087    M-00087
48  PO1000000553  M-00917,M-00920,M-00922      M-00920    M-00920

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据其他两个数据框列中的值条件创建新列

根据R中其他两个列的比较生成新的列值

熊猫根据其他两个具有日期时间值的列创建一个布尔列

R创建一个新列,该列的值取决于其他两个列的匹配情况

熊猫根据其他两列的划分创建新列

Python 创建一个新列并根据其他两个列值填充它

熊猫根据其他列的值创建新的列ID

熊猫使用其他列中的值创建新列,并根据列值进行选择

根据其他两个列是否匹配为新列添加值

根据其他列中的匹配单词创建熊猫列

根据其他列的条件在熊猫中创建新列

如何根据其他两列中的值在熊猫数据框中添加新列

根据熊猫中其他两个列的比较将列设置为true / false?

根据其他列值在熊猫中添加新列

根据其他两个列创建新列,但在两个列中均观察到平均值

根据其他两个条件创建一个新列

根据其他列的唯一值的长度在熊猫中创建新列

熊猫根据其他列中的条件和值创建新列

根据熊猫数据框中其他列的条件和值创建新列

熊猫从数据框中的其他两个列变量计算新列

如何根据R中其他两个列的值组合更改列值?

如何通过比较其他两个列来创建具有值的新列?

根据其他两列中的条件在R中创建一个新列

根据其他两列替换熊猫中的值

提取与R中其他列匹配的两个不同列中的值

根据其他两列中的值创建是/否列

如何根据其他两列中的 IF AND 使用设定值创建新列

Python:根据其他两列中的值有条件地创建新列

如何根据其他两列的值在 DataFrame 中创建新列