Поиск статей, которые не начинаются с заглавной буквы в одном столбце - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть датафрейм, как показано ниже:

df = {'id': [1,2,3,4,5,6,7], 'name': [Zeke,such,a,Maya,Derek,an,the]}

Кстати, это огромный фрейм данных.Теперь я хочу найти список неправильных имен, таких как «такие», «а», «an», «the».Я хочу удалить их и иметь df вроде:

df_new= {'id': [1,4,5], 'name': [Zeke,Maya,Derek]}

Я уже пытался найти каждое конкретное неправильное имя по:

df.query('name=="a"')
df1.query('name=="an"')
df1.query('name=="the"')

Проблема в том, что яне знаю, сколько существует разных неправильных имен.Единственное различие между правильными именами и неправильными именами - первая буква (samll или заглавная).

Любая помощь приветствуется.

1 Ответ

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

Используйте istitle для проверки первого символа в верхнем регистре с фильтрацией по boolean indexing:

df = df[df['name'].str.istitle()]

Или получите первое значение путем индексации и проверки поisupper:

df = df[df['name'].str[0].str.isupper()]

Для лучшей производительности в нем отсутствуют пропущенные значения, используйте понимание списка:

df = df[[x.istitle() for x in df['name']]]
df = df[[x[0].isupper() for x in df['name']]]

print (df)

   id   name
0   1   Zeke
3   4   Maya
4   5  Derek
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...