python - 下标运算符的不同位置导致熊猫 groupby 的结果相同
问题描述
我正在通过一门课程学习熊猫。在课程的 groupby 视频中,我对这个声明感到困惑。
df.set_index('STNAME').groupby(level=0)['CENSUS2010POP'].agg(avg=np.average, sum=np.sum).head()
输出是:
在此语句中,下标运算符 ['CENSUS2010POP'] 放在 groupby 之后。我的问题是 groupby 返回一个包含元组的 groupby 对象。元组是完成分组的数据对和基于该分组条件的数据帧。我们如何首先为 groupby 对象下标。此外,当我以以下方式编写查询时,它仍然有效。
df.set_index('STNAME')['CENSUS2010POP'].groupby(level=0).agg(avg=np.average, sum=np.sum).head()
为什么在 groupby 之后放置下标运算符?为什么两个语句的工作方式相同?两种说法之间甚至有区别吗?
解决方案
它们是不同的:
- df.set_index('STNAME').groupby(level=0) ['CENSUS2010POP'] .agg(avg=np.average, sum=np.sum).head()
- df.set_index('STNAME') ['CENSUS2010POP'] .groupby(level=0).agg(avg=np.average, sum=np.sum).head()
在第一种情况下,您对所有列进行分组,取 CENSUS2010POP,取平均值和求和,而在第二种情况下,取 CENSUS2010POP,分组,取平均值和求和。
推荐阅读
- javascript - 如何使用 javascript 的 kubernetes-client 编写 CRD?
- sql - Access/Excel集成:如何避免同时用户之间的冲突?
- python - QTableView HorizontalHeader 让它非常滞后?
- uwp - 是否需要 Windows 应用程序认证套件流程?
- typescript - 如何获取类中静态方法的名称?
- c# - 错误 MySql 您的 SQL 语法有错误。添加带有变量的参数时
- flutter - 来自时间选择器的 Flutter Format Time of Day
- spring-boot - SpringBoot 应用程序无法解析 thymeleaf 视图
- asp.net-core - 我想在详细信息页面中而不是在 AspNetCore Web 应用程序的索引页面中构建列
- javascript - 如何包含第三方 javascript