Python学习笔记: Pandas 人员乱数分组及彙整小组成员

本文同步发表于小弟自架网站:微确幸资讯站

原始的问题为将学生乱数分成A、B、C三组:

姓名组别0黄文欣B1徐翠洋C2林欣虹A3吴语群B4詹俊宏A5林素元A6洪伟诚B7黄玉廷C8黄琼瑞C9陈奕季B

目标是分组后的学生,新增一栏「小组成员」:

姓名组别小组成员0黄文欣B[黄文欣, 吴语群, 洪伟诚, 陈奕季]1徐翠洋C[徐翠洋, 黄玉廷, 黄琼瑞]2林欣虹A[林欣虹, 詹俊宏, 林素元]3吴语群B[黄文欣, 吴语群, 洪伟诚, 陈奕季]4詹俊宏A[林欣虹, 詹俊宏, 林素元]5林素元A[林欣虹, 詹俊宏, 林素元]6洪伟诚B[黄文欣, 吴语群, 洪伟诚, 陈奕季]7黄玉廷C[徐翠洋, 黄玉廷, 黄琼瑞]8黄琼瑞C[徐翠洋, 黄玉廷, 黄琼瑞]9陈奕季B[黄文欣, 吴语群, 洪伟诚, 陈奕季]
import pandas as pdimport numpy as np# 先用乱数厂生的姓名做一个Dataframedf = pd.DataFrame({'姓名':['黄文欣', '徐翠洋', '林欣虹', '吴语群',                          '詹俊宏', '林素元', '洪伟诚', '黄玉廷', '黄琼瑞', '陈奕季'],                    })# 準备将所有的学生做ABC的分组group = 'ABC'# df新增一个「组别」的栏位,由ABC乱数产生,长度为dfdf["组别"] = np.random.choice(list(group), size=len(df))df

http://img2.58codes.com/2024/20122335prQ7gtVB6j.jpg

# 将df以组别来分类后,所有的姓名转成list,并把这个序列的命名改成「小组成员」s = df.groupby('组别').姓名.agg(list).rename('小组成员')print(type(s))s

http://img2.58codes.com/2024/2012233560doJpuFTm.jpg

# 将原来的df串接上面做好的sdf = pd.merge(df, s, on='组别', how='left')df

http://img2.58codes.com/2024/20122335orZ8vwLaJB.jpg

这样就完成我们的目标了!!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章