python - 如何按两列交替分组?
问题描述
如何按两列交替分组?
例如,如果我有这张桌子
我想得到
但是,当我使用时,我得到了这个
df.insert(2, 'Count', df.groupby(['Name1','Name2'])['Name1'].transform('size'))
具有相同名称但交换的条目(行)被认为是新条目,但我想以同样的方式对待它们,你能告诉我一种方法吗?
解决方案
较短 DataFrame 的示例:
df = pd.DataFrame({'name1': ['Alex', 'Alex', 'Sarah', 'Martin'], 'name2': ['Martin', 'Martin', 'Alex', 'Alex']})
df['tmp'] = df.apply(frozenset, axis=1)
df['count'] = df.groupby('tmp')['name1'].transform('size')
df = df.set_index('tmp')
df = df[~df.index.duplicated()].reset_index(drop=True)
print(df)
印刷:
name1 name2 count
0 Alex Martin 3
1 Sarah Alex 1
推荐阅读
- c# - ValidateAntiForgeryToken 端点属性在 Asp.Net 核心 Angular Web 应用程序中每次 CSRF 攻击的使用情况
- amazon-web-services - 如何使用 CLI 更新 AWS 环境变量?
- javascript - 如何通过单击将按钮中的值存储到变量中?
- django - 如何使 Django 加载配置文件图像文件形成“媒体”目录
- sql-server - 我们是否可以选择在数据库范围内启用 OPTION(RECOMPILE)
- php - 使用 whereIn 从数据透视表返回数据
- python - 无法将关键字“approve_moderator”解析为字段。选项有:id、user、user_id
- google-cloud-platform - 是否可以在本地运行 GKE Workload ID?
- embedded-linux - PTHREAD_STACK_MIN 导致编译 buildroot 出现问题
- jenkins - 如何从 Jenkinsfile 设置环境变量