Как суммировать значение из списка? - PullRequest
0 голосов
/ 10 октября 2019

У меня есть список значений, который выглядит следующим образом:

filtered_df['title_sentiment'].head()
2      {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound...
3      {'neg': 0.0, 'neu': 0.85, 'pos': 0.15, 'compou...
12     {'neg': 0.0, 'neu': 0.744, 'pos': 0.256, 'comp...
67     {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound...
130    {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound...
Name: title_sentiment, dtype: object

, и я хочу суммировать все конкретные значения из списка, такие как 'pos'.

Я пробовал:

filtered_df['pos_sum'] = filtered_df['title_sentiment'].apply(lambda x: x['pos'].sum())

... что вызывает:

AttributeError: у объекта 'float' нет атрибута 'sum'

Помощь будет принята с благодарностью. Спасибо!

Ответы [ 4 ]

1 голос
/ 10 октября 2019

Проблема в том, что x['pos'] дает вам float, потому что вы получаете доступ к значению соответствующей клавиши 'pos' в словаре. Попробуйте:

filtered_df['pos_sum'] = filtered_df['title_sentiment'].apply(lambda x: x['pos']).sum()

Извлечение x['pos'], а затем сумма.

1 голос
/ 10 октября 2019

Вам необходимо сложить ряд, возвращенный из apply. Попробуйте это:

filtered_df['pos_sum'] = filtered_df['title_sentiment'].apply(lambda x: x['pos']).sum()
0 голосов
/ 10 октября 2019

Я бы попробовал:

filtered_df['pos_sum'] = sum([el['pos] for el in filtered_df['title_sentiment']])
0 голосов
/ 10 октября 2019

Сначала вы должны извлечь число из этого словаря

filtered_df['pos_sum'] = filtered_df['title_sentiment'].apply(lambda x: x['pos']).sum()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...