Работа с PANDAS, чтобы попытаться суммировать данные как количество определенных категорий, а также среднюю оценку настроений для этих категорий.
Есть таблица, полная строк, которые имеют разные оценки настроений, и я хочу сгруппировать каждый источник текста, указав, сколько сообщений у них есть, а также среднее настроение этих сообщений.
Мой (упрощенный) фрейм данных выглядит так:
source text sent
--------------------------------
bar some string 0.13
foo alt string -0.8
bar another str 0.7
foo some text -0.2
foo more text -0.5
Вывод из этого должен быть примерно таким:
source count mean_sent
-----------------------------
foo 3 -0.5
bar 2 0.415
Ответ где-то вроде:
df['sent'].groupby(df['source']).mean()
Но только дает каждый источник, и это значит, без заголовков столбцов.
Заранее спасибо!
4 ответа
Вы можете использовать groupby
с aggregate
:
df = df.groupby('source') \
.agg({'text':'size', 'sent':'mean'}) \
.rename(columns={'text':'count','sent':'mean_sent'}) \
.reset_index()
print (df)
source count mean_sent
0 bar 2 0.415
1 foo 3 -0.500
В новых версиях Panda вам больше не нужно переименовывать, если используются именованные параметры:
df = df.groupby('source') \
.agg(count=('text', 'size'), mean_sent=('sent', 'mean')) \
.reset_index()
print (df)
source count mean_sent
0 bar 2 0.415
1 foo 3 -0.500
Ниже должно работать нормально:
DF [ [ ' источник ', ' послан '] ] . GroupBy ( ' исходный ') . AGG ( [ ' подсчет ', ' средний '] )
Я думаю, что это должно обеспечить вывод, который вы хотели:
result = pd.DataFrame(df.groupby('source').size())
results['mean_score'] = df.groupby('source').sent.mean()
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.