pandas.DataFrame.groupby опуская столбцы - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть Pandas DataFrame, который содержит некоторые значения, и я хочу суммировать эти значения в соответствии со столбцом date.

DataFrame выглядит следующим образом:

enter image description here

и когда я бегу pandas.DataFrame.groupby(['date']).sum(), я получаю

enter image description here

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

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

Спасибо.

1 Ответ

2 голосов
/ 05 апреля 2019

Нам нужно numeric столбцы, чтобы иметь возможность вычислять их, в этом случае sum:

#Example dataframe
df = pd.DataFrame({'date':['2019-01-04', '2019-01-04', '2019-01-03', '2018-12-22', '2018-08-31'],
                   'replies_count':['46', '143', '64', '154', '50'],
                   'polarity':[10, 20, 30, 40, 50]})

print(df)
         date replies_count  polarity
0  2019-01-04            46        10
1  2019-01-04           143        20
2  2019-01-03            64        30
3  2018-12-22           154        40
4  2018-08-31            50        50

Проверить типы столбцов

print(df.dtypes)

date             object
replies_count    object
polarity          int64
dtype: object

Применить groupby с sum

print(df.groupby('date').sum())

            polarity
date                
2018-08-31        50
2018-12-22        40
2019-01-03        30
2019-01-04        30

Теперь измените тип столбца replies_count на int и сделайте то же самое groupby с sum

df['replies_count'] = df['replies_count'].astype(int)

print(df.groupby('date').sum())
            replies_count  polarity
date                               
2018-08-31             50        50
2018-12-22            154        40
2019-01-03             64        30
2019-01-04            189        30

Как мы видим, столбец включен сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...