1).我有一个以下示例数据集:
>>> df
ID Region count
0 100 Asia 2
1 101 Europe 3
2 102 US 1
3 103 Africa 5
4 100 Russia 5
5 101 Australia 7
6 102 US 8
7 104 Asia 10
8 105 Europe 11
9 110 Africa 23
我想通过ID区域对该数据集的观察值进行分组,并对每个组的计数进行求和.所以我用这样的东西:
>>> print(df.groupby(['ID','Region'],as_index=False).count.sum())
ID Region count
0 100 Asia 2
1 100 Russia 5
2 101 Australia 7
3 101 Europe 3
4 102 US 9
5 103 Africa 5
6 104 Asia 10
7 105 Europe 11
8 110 Africa 23
使用as_index = False可以获得“Sql-Like”输出.我的问题是我无法在这里重命名这个聚合变量.所以在Sql中,如果想做上述的事情,我会做这样的事情:
select ID, Region, sum(count) as Total_Numbers
from df
group by ID,Region
order by ID, Region
我们看到,在SQL中将聚合变量“count”重命名为Total_Numbers是非常容易的.我想在pandas做同样的事情,但是在groupby功能中找不到这样的选项.有人可以帮忙吗?
2).第二个问题和更多的观察是,是否可以直接使用Pandas数据框函数中的列名,并将它们包含在引号内?我知道变量名是字符串,所以必须在引号内,但是我看到如果使用外部数据帧函数,作为一个属性,我们不需要它们在引号内.像df.ID.sum()等等.只有当我们在DataFrame函数(如df.sort()或df.groupby)中使用它时,我们必须在引号内使用它.这实际上是像SQL或SAS或其他语言一样的痛苦,我们简单地使用变量名称而不引用它们.有什么建议吗?
请注意上述两点(第一个主要是第二个意见).
谢谢