#python #python-3.x #pandas
#python #python-3.x #панды
Вопрос:
Если у меня есть df ниже:
name|
Bob
3245
Chris
Amy
Chris
3242424
Amy
Если я хочу подать файл только для amy, но сохранить все строки, в которых есть номера, как я могу это сделать?
В основном фильтр для всех строк, в которых текст должен быть amy, но также включает все другие строки, которые являются не именами, а числами?
Вывод:
name|
3245
Amy
3242424
Amy
Спасибо
Ответ №1:
Вы можете попробовать .str.match
:
df[df['name'].str.match('Amy').fillna(True) ]
Или вы можете попробовать свою логику:
mask = df['name'].eq('Amy') | df['name'].astype(str).str.isnumeric()
df[mask]
Вывод:
name
1 3245
3 Amy
5 3242424
6 Amy
Комментарии:
1. когда я пытаюсь, я возвращаю только amy, а не строки с номерами в name col
2. оба решения возвращают только текстовое имя amy, а не числа — это потому, что этот столбец является объектом Dtype>? @Quang Hoang
3. Привет, извините, нет, я имел в виду, что столбец является объектом dtype, но все же возвращаемый результат — это только строки amy, а не все остальные строки, где это 424242 или 256452, я не понимаю @Quang Hoang
4. @Chris90 сделайте
df.to_dict()
и опубликуйте вывод на свой вопрос.5.
df.head(10).to_dict()
.