gpt4 book ai didi

python - 在 Pandas Groupby 函数中重命名列名

转载 作者:IT老高 更新时间:2023-10-28 21:35:04 38 4
gpt4 key购买 nike

Q1) 我想做一个 groupby、SQL 风格的聚合并重命名输出列:

示例数据集:

>>> 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

我想按 IDRegion 对这个数据集的观察结果进行分组,并对每个组的 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 对我来说非常容易。我想在 Pandas 中做同样的事情,但在 group-by 函数中找不到这样的选项。有人可以帮忙吗?

第二个问题(更多是观察)是是否……

Q2) 是否可以直接在 Pandas 数据框函数中使用列名而不用引号括起来?

我知道变量名是字符串,所以必须在引号内,但我看看是否在数据框函数之外使用它们,并且作为属性,我们不要求它们在引号内。像 df.ID.sum() 等。只有当我们在像 df.sort()df.groupby 这样的 DataFrame 函数中使用它时> 我们必须在引号内使用它。这实际上有点痛苦,因为在 SQL 或 SAS 或其他语言中,我们只是使用变量名而不引用它们。对此有何建议?

请回答两个问题(Q1 是主要的,Q2 更多的意见)。

最佳答案

对于第一个问题,我认为答案是:

<your DataFrame>.rename(columns={'count':'Total_Numbers'})

<your DataFrame>.columns = ['ID', 'Region', 'Total_Numbers']

至于第二个,我会说答案是否定的。由于python datamodel,它可以像'df.ID'一样使用。 :

Attribute references are translated to lookups in this dictionary, e.g., m.x is equivalent to m.dict["x"]

关于python - 在 Pandas Groupby 函数中重命名列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19523277/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com