pandas.DataFrame.group通过省略列

时间:2019-04-04 22:43:24

标签: python pandas dataframe group-by

我有一个包含一些值的Pandas DataFrame,我想根据date列对这些值求和。

DataFrame如下所示:

https://github.com/karma-runner/karma/issues/1507

当我运行pandas.DataFrame.groupby(['date']).sum()时,我会得到

enter image description here

如您所见,这不是我想要的结果,因为我希望汇总所有列,而不仅仅是polaritysubjectivity

有人知道为什么只将这两个加起来吗?我怎么能得到想要的结果?

谢谢。

1 个答案:

答案 0 :(得分:2)

我们需要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

如我们所见,该列现已包括在内。