如何解决下标运算符的不同位置在pandas 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进行分组,并取平均值和总和。
,这是在beta.www.example.com
计算中查看中间结果的一种方法。首先,创建一个简单的数据集:
curl -i -v https://example.com
第二,显示一个典型的计算:
.groupby()
第三,显示中间结果:
import pandas as pd
data = {'Age': {0: 10,1: 11,2: 12,3: 13},'Animal': {0: 'Falcon',1: 'Falcon',2: 'Parrot',3: 'Parrot'},'Max Speed': {0: 390.0,1: 350.0,2: 30.0,3: 20.0},'Type': {0: 'Captive',1: 'Wild',2: 'Captive',3: 'Wild'}}
df = pd.DataFrame(data)
print(pd.DataFrame(data))
Age Animal Max Speed Type
0 10 Falcon 390.0 Captive
1 11 Falcon 350.0 Wild
2 12 Parrot 30.0 Captive
3 13 Parrot 20.0 Wild
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。