Pandas在多个列上匹配,并作为单个新列获取匹配值

2024-05-12 21:30:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大约有5列的数据框。我要匹配的值可能出现在最后3列中的任何一列中。

Key   |  col1   |  col2  |  col3 |  col4
----------------------------------------
1        abc       21        22      23
2        cde       22        21      20
3        fgh       20        22      23
4        lmn       20        22      21

我正在筛选最后三列中任何一列的值21,如下所示:

df1 = df[(df['col2']=='21') | (df['col3']=='21') | (df['col4']=='21')]

这给了我

Key   |  col1   |  col2  |  col3 |  col4
----------------------------------------
1        abc       21        22      23
2        cde       22        21      20
4        lmn       20        22      21

使用这个新的df1我想得到这个

Key   |  col1   |  newCol
-------------------------
1        abc       21      
2        cde       21      
4        lmn       21      

基本上任何匹配的列都作为新的列值。我怎么用熊猫做这个?我很感激你的帮助。所以我想我应该同时过滤并映射到新的列,但我不知道怎么做?


Tags: 数据keydfcol2col3col1df1abc