以下是一个示例代码,演示如何按行分组和合并一个变量的值,同时保留其他变量。
假设我们有一个包含学生姓名、科目和成绩的数据集,我们想要按照学生姓名分组,并将每个学生的科目和成绩合并为一个列表。
import pandas as pd
# 创建示例数据集
data = {'姓名': ['张三', '张三', '李四', '李四', '王五', '王五'],
'科目': ['数学', '英语', '数学', '英语', '数学', '英语'],
'成绩': [90, 85, 95, 88, 92, 90]}
df = pd.DataFrame(data)
# 按姓名分组,并合并科目和成绩为列表
grouped = df.groupby('姓名').apply(lambda x: list(zip(x['科目'], x['成绩'])))
print(grouped)
输出结果为:
姓名
张三 [(数学, 90), (英语, 85)]
李四 [(数学, 95), (英语, 88)]
王五 [(数学, 92), (英语, 90)]
dtype: object
在这个示例中,我们使用了groupby
函数按照姓名进行分组。然后,我们使用apply
函数将每个分组中的科目和成绩合并为一个列表。最后,我们打印出了结果。
请注意,最终的结果是一个Series对象,其中每个元素是一个包含科目和成绩的列表。
上一篇:按行分组的pandas应用卷积
下一篇:按行分组匹配