Как удалить строки в кадре данных Pandas с определенным столбцом, содержащим только цифры? - PullRequest
0 голосов
/ 20 ноября 2018

Допустим, у меня есть этот DF:

ID     IGName          Date_created
0     BananaMan         09/10/2018
1     Superman247       10/10/2009
2     123456789         08/03/2011
3     Nameless101       07/12/2012

Я хочу иметь возможность удалить всех строк в DF, где IGName это только числа.

Как и в этом примере, строка 3 - это все числа.Я хочу сохранить имена буквенно-цифровых строк, но не строки с ТОЛЬКО цифрами.

Я хочу, чтобы результат выглядел следующим образом:

ID     IGName          Date_created
0     BananaMan         09/10/2018
1     Superman247       10/10/2009
3     Nameless101       07/12/2012

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Вы можете сделать:

import pandas as pd


data = [[0, 'BananaMan', '09/10/2018'],
        [1, 'Superman247', '10/10/2009'],
        [2, '123456789', '08/03/2011'],
        [3, 'Nameless101', '07/12/2012']]

df = pd.DataFrame(data=data, columns=['ID', 'IGName', 'Date_created'])

df = df[~df['IGName'].str.isnumeric()]

print(df)

выход

   ID       IGName Date_created
0   0    BananaMan   09/10/2018
1   1  Superman247   10/10/2009
3   3  Nameless101   07/12/2012

Из документации :

Проверьте, все ли символы в каждой строке в Серии / Индексе Числовой. Эквивалентно str.isnumeric ().

Обратите внимание, что в этом решении предполагается, что столбец 'IGName' имеет тип string, в противном случае вам необходимо привести его к строке, выполнив что-то вроде (как упомянуто @RafaelC):

df['IGName'] = df['IGName'].astype(str)
0 голосов
/ 20 ноября 2018

Использование df[...]:

print(df[~df['IGName'].str.isnumeric()])

Или:

print(df[df['IGName'].str.contains(r'\D+')])

Оба Вывод:

   ID       IGName Date_created
0   0    BananaMan   09/10/2018
1   1  Superman247   10/10/2009
3   3  Nameless101   07/12/2012

Если IGName имеет целые числа, то:

print(df[pd.to_numeric(df.IGName, errors='coerce').notnull()])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...