Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在pandas数据帧中,如何检查两个字符串是否存在于同一行但在不同列中?_Python_Pandas_Dataframe - Fatal编程技术网

Python 在pandas数据帧中,如何检查两个字符串是否存在于同一行但在不同列中?

Python 在pandas数据帧中,如何检查两个字符串是否存在于同一行但在不同列中?,python,pandas,dataframe,Python,Pandas,Dataframe,因此,我一直在试图找出如何编写最简单的if语句,以便检查rootID中是否存在字符串“A”,parentID中是否存在任何行中的字符串“B”。然后我想删除该行。在下面的数据帧中,我希望在这种情况下删除第0行 rootID parentID jobID time 0 A B D 2019-01-30 14:33:21.339469

因此,我一直在试图找出如何编写最简单的if语句,以便检查rootID中是否存在字符串“A”,parentID中是否存在任何行中的字符串“B”。然后我想删除该行。在下面的数据帧中,我希望在这种情况下删除第0行

                     rootID   parentID    jobID  time
                  0    A         B          D    2019-01-30 14:33:21.339469
                  1    E         F          G    2019-01-30 14:33:21.812381
                  2    A         C          D    2019-01-30 15:33:21.812381
                  3    E         E          F    2019-01-30 15:33:21.812381
                  4    E         F          G    2019-01-30 16:33:21.812381
我知道如何检查是否存在一个元素,例如

   if df['rootID'].str.contains("A").any()
但是,当我需要检查两列中的两个不同字符串时,我该如何做呢?

对于
按位或
使用
链接的掩码,对于反向布尔掩码使用
~

如果需要检查子字符串:

m1 = ~df['rootID'].str.contains("A")
m2 = ~df['parentID'].str.contains("B")
如果需要检查字符串,请使用:


另一个解决方案:

df = df.query('rootID != "A" | parentID != "B"')

再次感谢你帮助我。之后如何选择该行并将其从原始数据帧中删除?为了正确实现这一点。我首先定义m1和m2,然后用“if m1和m2:”?@Kspr-No,你可以使用
df=df[~df['rootID'].str.contains(“A”)| ~df['parentID'].str.contains(“B”)]
和类似的方法来测试它,只要条件更多,它就更可读。问题是每次发生这种情况时,我都需要检查并每次增加一个计时器。所以我想要一个if,这样我可以增加计数器,然后删除行。你为什么不数一数有多少这样的行呢?(提示:创造出来的布尔人很容易回答这个问题)@Kspr
df = df[m1 | m2]

print (df)
  rootID parentID jobID                        time
1      E        F     G  2019-01-30 14:33:21.812381
2      A        C     D  2019-01-30 15:33:21.812381
3      E        E     F  2019-01-30 15:33:21.812381
4      E        F     G  2019-01-30 16:33:21.812381
df = df.query('rootID != "A" | parentID != "B"')