Python groupby并从DataFrame中选择列
我有一个每日级别的数据帧:Python groupby并从DataFrame中选择列,python,pandas,select,group-by,aggregate,Python,Pandas,Select,Group By,Aggregate,我有一个每日级别的数据帧: day | type| rev |impressions| yearmonth 2015-10-01| a | 1999| 1000 |201510 2015-10-02| a | 300 | 6777 |201510 2015-11-07| b | 2000| 4999 |201511 Yearmonth是我添加到数据框中的一列。任务是按yearmonth,(可能是类型,然后求和所有列(或选择一个值),并选择它
day | type| rev |impressions| yearmonth
2015-10-01| a | 1999| 1000 |201510
2015-10-02| a | 300 | 6777 |201510
2015-11-07| b | 2000| 4999 |201511
Yearmonth
是我添加到数据框中的一列。任务是按yearmonth
,(可能是类型
,然后求和
所有列(或选择一个值),并选择它们作为新的数据帧
在对上述数据帧进行分组时,我们应该在一个月内得到一行。
yearmonth| type| rev |impressions
201510 | a | 2299| 7777
201511 | b | 2000| 4999
让我们说,df
是数据帧,我试过这样做
test=df.groupby('yearmonth')
我检查了可用于测试(test.)的方法,但我没有看到任何可以选择列并在那里聚合它们的方法(我想我们可以使用agg
进行sum
)
任何输入?添加as_索引参数 像这样:
test=df.groupby('yearmonth',as_index=False)
以下是参考资料:
您打算如何处理非数字的
type
列。您是否也想按该列进行分组,还是应该忽略它?@Alexander:现在我想我只需要按原样选择df.groupby(['yearmonth'])['rev',impressions'].sum()
或df.groupby(['yearmonth',type'])['rev',impressions'].sum()
@Alexander:谢谢,它可以工作。我知道类型必须是键的一部分,下面是我想处理的一个场景,比如说对于201510
-在第二行中,类型值是“a”,但结果应该仍然与结果I相同mentioned@Alexander:当我打印df.groupby返回的数据帧时(['yearmonth'])['rev','impressions'].sum()
,它正在将yearmonth打印为索引,其他打印为列,如果我想将它们全部打印为列,我可以删除索引吗?最好的处理方法是什么..删除索引或按原样使用它