最佳答案
示例数据集:
>>> 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
和 Region
分组,然后把每组的 count
相加。所以我用了这样的东西。
>>> 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 样”输出。我的问题是我无法在这里 重命名聚合变量 count
。因此,在 SQL 中,如果想要做上面的事情,我会这样做:
select ID, Region, sum(count) as Total_Numbers
from df
group by ID, Region
order by ID, Region
正如我们所看到的,在 SQL 中从 重命名聚合变量 count
到 Total_Numbers
对我来说是非常容易的。我想做同样的事情在熊猫,但无法找到这样一个选项的功能组。有人能帮忙吗?
第二个问题(更多的是观察)是否..。
我知道变量名是字符串,所以必须在引号中,但是我看到如果在数据框架函数之外使用它们,并且作为一个属性,我们不要求它们在引号中。比如 df.ID.sum()
等等。只有当我们在像 df.sort()
或 df.groupby
这样的 DataFrame 函数中使用它时,我们才必须在引号中使用它。这实际上有点痛苦,因为在 SQL 或 SAS 或其他语言中,我们只使用变量名而不引用它们。有什么建议吗?
请回答这两个问题(Q1是主要的,Q2更多的是一个意见)。