在Python的pandas库中,可以使用groupby()
函数按照多个列对数据框进行分组。
假设我们有一个包含"姓名"、"性别"和"年龄"的数据框df,我们想按照"性别"和"年龄"进行分组。
import pandas as pd
# 创建数据框
data = {'姓名': ['张三', '李四', '王五', '赵六', '钱七'],
'性别': ['男', '女', '男', '女', '男'],
'年龄': [20, 25, 22, 25, 24]}
df = pd.DataFrame(data)
# 按照多个列进行分组
grouped = df.groupby(['性别', '年龄'])
# 遍历分组
for name, group in grouped:
print(name)
print(group)
输出结果:
('女', 25)
姓名 性别 年龄
1 李四 女 25
3 赵六 女 25
('男', 20)
姓名 性别 年龄
0 张三 男 20
('男', 22)
姓名 性别 年龄
2 王五 男 22
('男', 24)
姓名 性别 年龄
4 钱七 男 24
在上面的例子中,我们首先使用groupby(['性别', '年龄'])
对数据框进行分组,然后使用for
循环遍历每个分组。每个分组由一个元组和一个数据框组成,元组包含按照哪些列进行分组的值,数据框则包含相应分组的数据。