проверка значений других столбцов, если текущий столбец содержит строку

#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’