python - 遍历 Pandas groupby 对象的子集
问题描述
我有一个 Pandas groupby 对象,我想遍历第一n
组。我试过了:
import pandas as pd
df = pd.DataFrame({'A':['a','a','a','b','b','c','c','c','c','d','d'],
'B':[1,2,3,4,5,6,7,8,9,10,11]})
df_grouped = df.groupby('A')
i = 0
n = 2 # for instance
for name, group in df_grouped:
#DO SOMETHING
if i == n:
break
i += 1
和
group_list = list(df_grouped.groups.keys())[:n]
for name in group_list:
group = df_grouped.get_group(name)
#DO SOMETHING
但我想知道是否有更优雅/pythonic的方式来做到这一点?
我的实际 groupby 中有 1000 个组,我只想对一个子集执行操作,只是为了对整个数据有一个印象。
解决方案
您可以使用原始df进行过滤,然后我们可以完成您需要做的所有其他事情
yourdf=df[df.groupby('A').ngroup()<=1]
yourdf=df[pd.factorize(df.A)[0]<=1]
推荐阅读
- r - 从 CRAN 安装软件包时 R 找不到 Rtools
- javascript - 动态创建javascript对象
- amazon-ec2 - 无法通过 Terraform 异步启动 EC2 实例
- django - 出现错误:得到了一个意外的关键字参数“版本”
- c# - 将 Web 服务 WSDL 命名空间 s 更改为 xs
- microcontroller - STM32G0 bootloader用的是哪个UART
- html - 保存日期并以良好的格式显示
- jmeter - 创建 Jmeter 的问题 - Java Sampler
- php - PHP REST api的安全方式?
- python - 我在运行此代码时遇到问题,因为它一直在 Python 中执行 if 语句的随机部分