Если строка в Dataframe содержит определенную строку, delete - PullRequest
0 голосов
/ 25 апреля 2019

Я должен удалить значения в строке кадра данных, если они содержат определенную строку.Проблема в том, что строка очень длинная и содержит текст.

Цикл не работает, индекс помещается в список, а затем использование .drop для индекса также не работает.

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

Спасибо

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

Предположим, ваш фрейм данных называется df. Затем используйте:

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

Объяснение

df['column1'].str.contains('total') даст вам массив длины столбца данных, который равен True, где df['column1'] содержит 'total'. С ~ вы меняете значения True и False этого массива. И, наконец, с df_filtered = df[...] вы берете только те строки, для которых 'total' не входит.

0 голосов
/ 25 апреля 2019

Если я правильно понял, у меня есть небольшой пример ниже, где 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...