Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python groupby并从DataFrame中选择列_Python_Pandas_Select_Group By_Aggregate - Fatal编程技术网

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打印为索引,其他打印为列,如果我想将它们全部打印为列,我可以删除索引吗?最好的处理方法是什么..删除索引或按原样使用它