本文同步发表于小弟自架网站:微确幸资讯站
原始的问题为将学生乱数分成A、B、C三组:
目标是分组后的学生,新增一栏「小组成员」:
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
# 将df以组别来分类后,所有的姓名转成list,并把这个序列的命名改成「小组成员」s = df.groupby('组别').姓名.agg(list).rename('小组成员')print(type(s))s
# 将原来的df串接上面做好的sdf = pd.merge(df, s, on='组别', how='left')df
这样就完成我们的目标了!!