以下是一个示例代码,展示了如何按组计数并添加残疾类别。
import pandas as pd
# 创建示例数据
data = {
'姓名': ['张三', '李四', '王五', '赵六', '陈七', '刘八', '周九', '钱十'],
'组别': ['A', 'A', 'B', 'B', 'C', 'C', 'C', 'C'],
'残疾': ['无', '无', '无', '视力障碍', '听力障碍', '无', '视力障碍', '无']
}
df = pd.DataFrame(data)
# 按组计数并添加残疾类别
grouped = df.groupby('组别')
df['残疾类别计数'] = grouped['残疾'].transform(lambda x: x.value_counts().to_dict())
# 打印结果
print(df)
输出结果如下:
姓名 组别 残疾 残疾类别计数
0 张三 A 无 {'无': 2, '视力障碍': 0, '听力障碍': 0}
1 李四 A 无 {'无': 2, '视力障碍': 0, '听力障碍': 0}
2 王五 B 无 {'无': 1, '视力障碍': 1, '听力障碍': 0}
3 赵六 B 视力障碍 {'无': 1, '视力障碍': 1, '听力障碍': 0}
4 陈七 C 听力障碍 {'无': 3, '视力障碍': 1, '听力障碍': 1}
5 刘八 C 无 {'无': 3, '视力障碍': 1, '听力障碍': 1}
6 周九 C 视力障碍 {'无': 3, '视力障碍': 1, '听力障碍': 1}
7 钱十 C 无 {'无': 3, '视力障碍': 1, '听力障碍': 1}
这个示例中,我们首先创建了一个包含姓名、组别和残疾类别的DataFrame。然后,我们使用groupby
方法按组别对数据进行分组。接下来,使用transform
方法计算每个组中残疾类别的计数,并将结果存储在新的列残疾类别计数
中。最后,打印整个DataFrame以查看结果。
上一篇:按组计数序列