У меня есть DataFrame со столбцом, который мне нужно искать с помощью подстановочного знака. Я пробовал это:
df = pd.read_excel('CHQ REG.xlsx',index=False)
df.sort_values(['CheckNumber'], inplace=True)
df[df.CheckNumber.str.match('888')]
df
Это возвращает все в df
Вот моя цель:
CheckBranch CheckNumber
Lebanon 8880121
Образец:
CheckBranch CheckNumber
Texas 4782436
Georgia 8967462
Lebanon 8880121
China 8947512
Поэтому я удаляю ошибку, которую я получал при правильном вызове dropna, но когда я запускаю match('888'), он выводит все строки в df.
Добавьте образец вашего df, а также ожидаемый результат и текущий результат.
Я разместил несколько образцов и ожидал выше.
Пытаться:
res = df[df['CheckNumber'].astype('string').str.match('888')]
print(res)
Выход
CheckBranch CheckNumber
2 Lebanon 8880121
Как альтернатива:
res = df[df['CheckNumber'].astype('string').str.startswith('888')]
Да, это сработало, но что делает astype? Я предположил, что .str.match сказал python искать строку?
astype преобразует серию в строковый тип
В чем смысл подстановочного знака, совпадение уже будет работать для любой строки, начинающейся с 888, если вы удалите
*