#python #python-3.x #pandas #dataframe #data-analysis
#питон #python-3.x #pandas #фрейм данных #анализ данных
Вопрос:
Я хочу проверить свой первый столбец и посмотреть, содержит ли строка определенную подстроку или нет. если да, я хочу получить значения из других столбцов. Например,
First Second Third
Jan,12 1 111
Feb,13 3 89
Jan,9 7 90
Для каждой строки, где встречается слово Jan, я хочу извлечь значения Second
и Third
для этой строки и добавить их в разные списки. Я попробовал это, чтобы получить значения в качестве образца, но это просто дает мне true или false.
print(df_performance['Jan' in df_performance['First']]['Second'].values)
Ответ №1:
Проверка contains
loc
df.loc[df['First'].str.contains('Jan'),'Second']
Out[287]:
0 1
2 7
Name: Second, dtype: int64
Комментарии:
1. Как я могу сделать это для всех строк? Можно ли получить сумму значений, полученных с помощью этого метода? Или мы можем сделать это сразу для нескольких столбцов?
2. проверка @a125
df.loc[df['First'].str.contains('Jan'),['Second','Third']].sum()
3. Для большинства мне нужна сумма, но для одного случая мне нужно среднее значение. Есть ли какой-либо способ также подсчитать количество строк, входящих в каждую категорию? Например,
df.loc[df['month].str.contains('jan'),['check']].sum()))
и если я знаю количество строк, в которых появляется ‘jan’, я могу просто разделить конечную сумму.4. @a125
df.loc[df['month].str.contains('jan'),['check']].value_counts()
5. В нем говорится AttributeError: объект ‘DataFrame’ не имеет атрибута ‘value_counts’