这个问题已经在这里有了答案 :
使用pandas GroupBy.agg()对同一列进行多次聚合 (3个答案)
去年关闭。
示例数据集:
>>> 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-like”输出。我的问题是我无法在此处
重命名聚合变量count
。因此,在SQL中,如果想做上述事情,我会做这样的事情:
select ID, Region, sum(count) as Total_Numbers
from df
group by ID, Region
order by ID, Region
正如我们看到的,它很容易让我
集合变量命名count
,以Total_Numbers
在SQL。我想在Pandas中做同样的事情,但是在group-
by函数中找不到这样的选项。有人可以帮忙吗?
第二个问题(更多是观察结果)是…
我知道变量名是字符串,因此必须在引号内,但是我知道是否在数据框函数外部使用它们,并且作为属性,我们不需要它们在引号内。像df.ID.sum()
等。只有当我们在DataFrame函数中使用它时,df.sort()
或者df.groupby
必须在引号内使用它时。实际上,这有点麻烦,因为在SQL或SAS或其他语言中,我们仅使用变量名而不引用它们。有什么建议吗?
请回答两个问题(Q1是主要问题,Q2更多是意见)。
对于第一个问题,我认为答案是:
<your DataFrame>.rename(columns={'count':'Total_Numbers'})
要么
<your DataFrame>.columns = ['ID', 'Region', 'Total_Numbers']
至于第二个,我会说答案是否定的。由于python数据模型,可以像’df.ID’一样使用它:
将属性引用转换为此字典中的查找,例如mx等效于m。 字典 [“ x”]
问题内容: 我可以使用此查询找出重复的数据 我能够获取重复数据。我只需要知道如何使用名称将重复数据重命名为 new 问题答案: 假设您在表上有某种主键,例如自动增量ID,则可以执行以下操作。 为了说明,它将查找重复的任何内容,为该集中的所有内容获取最大ID,并在其末尾附加“副本1”。如果您有3次或多次使用某些名称,则可能仍会留下一些重复项。只需再次运行它,这次使用“副本2”而不是“副本1”。继续重
问题内容: 我正在尝试使用以下SQL表达式重命名MySQL社区服务器5.5.27中的列: 我也试过 但它说: 错误:检查与您的MySQL服务器版本相对应的手册 问题答案: 使用以下查询: 该功能在Oracle数据库中使用。 注意用于MySQL的反引号,而双引号用于Oracle的语法。 另请注意,MySQL 8.0可能不接受反引号。在这种情况下,不带反引号的情况下执行查询,它可能会起作用。 @ la
问题内容: 我的表有一堆列,格式如下: 我想重命名它们只是添加一个前缀,如下所示: 我有 很多 比三列更用这种方式来命名。如果我只有三个人,那我会手动一个接一个地做。 实现这一目标的最快/最有效的方法是什么? 问题答案: …对于所有此类批量管理操作,您可以使用PostgreSQL系统表为您生成查询,而无需手动编写查询 在您的情况下,它将是: 这将为您提供一组字符串,这些字符串是SQL命令,例如:
我想在sqlite中重命名列。我为一些列创建了两个带空格的单词标题,这些标题稍后会产生问题(例如而不是。 以前,这似乎是不可能的链接。但是几个月前的一个版本似乎包含了选项链接。 然而,这似乎不起作用。 查询将生成以下错误消息: 我为列名添加了引号,以防出现空格问题: 但也会出现同样的错误。 此解决方案提示重命名是可能的。但只重命名表(这很好),而不重命名列。
函数名称:重命名文件 函数功能: 修改文件名称 函数方法 flag = file.writeString (path,name) 参数 类型 必填 说明 path string 是 需要修改的文件路径 str string 是 修改后的文件名称 返回值 类型 说明 flag boolean true - 修改成功,false - 修改失败 函数用例 path = "/sdcard/LuaBox/P