我在熊猫中有以下数据框
ID description log
1 104 motherboardsrno123
2 104 displaysrno456
3 107 1234
4 108 53455
5 104 pulsersrno2333
6 108 53456
7 109 NA
我只想保留描述104中包含“母亲”或“脉冲”的那些行
以下是我想要的数据框
ID description log
1 104 motherboardsrno123
3 107 1234
4 108 53455
5 104 pulsersrno2333
6 108 53456
7 109 NA
我正在熊猫后面
df= df[(df.log.str.contains("mother|pulsar",na=True)) and (df.description == '104')]
但这没有给我所需的输出。
最佳答案
似乎您需要将第二个字符串更改为pulser
,将and
更改为&
进行按位AND,并在必要时按整数104
比较(不是字符串'104'
,但取决于数据):
df = df[(df.log.str.contains("mother|pulser", na=True)) & (df.description == 104)]
print (df)
ID description log
0 1 104 motherboardsrno123
4 5 104 pulsersrno2333
对于您的预期输出-获取
mother or pulser
或不获取104
:df= df[(df.log.str.contains("mother|pulser", na=True)) | (df.description != 104)]
print (df)
ID description log
0 1 104 motherboardsrno123
2 3 107 1234
3 4 108 53455
4 5 104 pulsersrno2333
5 6 108 53456
6 7 109 NaN
关于python - 如何在某些条件下在 Pandas 中放行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54534615/