如果数据帧中的行包含某些字符串,则删除



如果数据帧行中的值包含某个字符串,我必须删除它们。问题是行很长并且包含文本。

循环不起作用,将索引放在列表中,然后在索引上使用 .drop 也不起作用。

column1
8
8
8
8 total       <-------- This must be deleted
8
8 
8 
8
8
...

谢谢

假设您的数据帧名为df。然后使用:

df_filtered = df[~df['column1'].str.contains('total')]

解释

df['column1'].str.contains('total')将为您提供一个数据帧列长度的数组,该数组True df['column1']包含'total'的任何位置。使用 ~ 可以交换此数组的True值和False值。最后,对于df_filtered = df[...],您只选择不包括'total'的行。

如果我理解正确的话,我在下面有一个小例子,其中 dataFrame 被称为 df 我想删除要搜索和删除的mixfruit

>>> df
       name  num
0     apple    5
1    banana    3
2  mixfruit    5
3    carret    6

一种方法是,正如提到的其他方法一样,可以与str.contains如下..

>>> df[~df.name.str.contains("mix")]
     name  num
0   apple    5
1  banana    3
3  carret    6

您也可以使用 isin,这将删除所有包含字符串的行

>>> df[~df['name'].isin(['mixfruit'])]
     name  num
0   apple    5
1  banana    3
3  carret    6

但是,您可以实现与以下相同的目标...

>>> df[df['name'] != 'mixfruit']
     name  num
0   apple    5
1  banana    3
3  carret    6

最新更新