在这里没有发现类似的问题。
下面的表格:
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
- 如果列B不为空,则将B中的值与A中的值进行比较,并尝试找到匹配的值。例如";笔;在列A的第一行中;笔;在B列的第二行
- 如果识别出匹配的值则需要在列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]