получить значение из другого столбца, если выполняется условие для этого столбца - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь получить значения из столбца 'count' и сгруппировать их в соответствующем списке в зависимости от того, выполнены ли условия для столбца 'sentiment'.

стол:

    hashtag   sentiment count
0   audi      negative  116
1   audi      neutral   885
2   audi      positive  786
6   bmw       negative  237
7   bmw       neutral   1266
8   bmw       positive  1126
32  ferrari   negative  200
33  ferrari   neutral   1175
34  ferrari   positive  910

желаемых результатов:

sent_pos  = (786, 1126, 910)
sent_neg = (116, 237, 200)

Я написал что-то вроде этого:

for j in car_df.iterrows():
    if car_df['sentiment'] == 'positive' :
        sent_pos = car_df.iloc[row,2]
    elif car_df['sentiment'] == 'negative' :
        sent_neg = car_df.iloc[row,2]
    else:
        sent_neutral == car_df.iloc[row,2]
return sent_pos, sent_neg, sent_neutral

но появляется эта ошибка:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

Ценю любую помощь

спасибо

1 Ответ

0 голосов
/ 10 мая 2018

Вы можете просто использовать groupby, например:

g = car_df.groupby('sentiment')
return tuple(g.get_group(s)['count'].tolist() for s in ['positive', 'negative', 'neutral'])

Или просто логическое выделение:

return tuple(car_df[car_df['sentiment'] == s]['count'].tolist() for s in ['positive', 'negative', 'neutral'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...