Подсчитать частичное совпадение в каждом столбце DataFrame в Pandas

1

У меня есть кадр данных, в котором я хочу подсчитать количество слов на каждый столбец. За один купон я могу сделать:

df['Col1'].str.contains('test').value_couns()

или же

df[df['Col1'].str.contains('test')]['Col1'].count()

и я получаю счет для конкретного столбца.

Как я могу получить его для всех столбцов? Я бы хотел избежать этого вручную для каждого столбца, так как их довольно много.

Изображение 174551

Ожидаемый результат

Изображение 174551

Теги:
pandas

2 ответа

1
Лучший ответ

один из способов решить эту проблему, как Submi Tried,

print (df.astype(str).apply(lambda x: x.str.contains('test').value_counts()).loc[True].fillna(0)).to_frame().T.reset_index(drop=True)

Выход:

   col1  col2  col3
0   1.0   0.0   2.0
  • 0
    Первый вариант, который я бы хотел избежать, у меня много dfs и много разных столбцов в них. Второй вариант работает. Единственное отличие от решения @theletz - это float вместо int, но это не проблема. Спасибо.
  • 0
    @Submi - чтобы получить точно такой же вывод, используйте reset_index. обновлен до решения
1

Я думаю, вы ищете это:

df.applymap(lambda x: 'test' in str(x)).sum()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню