当一列不为null时,python-panda会匹配两列之间的值



在这里没有发现类似的问题。

下面的表格:

A       B       C      D
0     pen     nan     dfds    1238
1     Apple   pen     fsd      324
2     Peach   nan     kd       878
3     grape   peach   jil      9kj
4     laptop  nan     lks      873p
5     light   grape   kje      7623d
6     nan     grape   3r43     kj23
7     nan     grape   3fdf     8734d
  1. 如果列B不为空,则将B中的值与A中的值进行比较,并尝试找到匹配的值。例如";笔;在列A的第一行中;笔;在B列的第二行
  2. 如果识别出匹配的值则需要在列A中找到索引;笔;是匹配值;笔;在列A中为0

我的预期输出是:

A       B        C      D 
0     pen     nan     dfds    1238
2     Peach   nan     kd       878
3     grape   peach   jil      9kj

并保持原始索引号,如输出示例中所示

我知道如何在A和B之间进行匹配。我的代码是

df2=df[df[['A','B']].nunique(axis=1)==1]

但是我不知道当B列不为空时如何添加条件。我不想做循环迭代,因为数据集非常大。

非常感谢!

我认为,在你的问题的第1点中,你的意思是列">C";不是null??但不管怎样,我将通过专栏">B";。

为此,您必须创建一个仅包含非空值的新数据帧。

df_not_null = df.dropna(subset=['B'])

然后你可以比较任何你想比较的东西。

df2 = df_not_null[df_not_null[['A','B']].nunique(axis=1)==1]

相关内容

  • 没有找到相关文章

最新更新