如果数据帧行中的值包含某个字符串,我必须删除它们。问题是行很长并且包含文本。
循环不起作用,将索引放在列表中,然后在索引上使用 .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