计算 pandas/python 中的嵌套类别

问题描述 投票:0回答:1

目标: 获取嵌套在另一个类别中的类别计数的汇总表。

示例: 我有这个数据框:

# initialize data of lists.
data = {'Name': ['Tom', 'Tom', 'Tom', 'jack', 'jack', 'Mary', 'Mary', 'Mary', 'Jim', 'Jim'],
        'Age': ['X', 'X', 'X', 'X', 'X','X','Y','Z', 'X', 'Y']}
 
# Create DataFrame
df = pd.DataFrame(data)

任务: 我想将 X、Y 和 Z 重新编码为简单、中等和困难,但与名称嵌套。例如,X很简单(它只有X),重复2次(汤姆和杰克)。中-难(玛丽重复 1 次)和简单-中度(吉姆重复 1 次)。

我有几个小时的时间来重新编码,我可以重新编码到另一列,但我只有 1 个类别(例如)对于第一行来说很容易。

如何“合并”行并获得我正在寻找的结果?

感谢您的帮助

python pandas group-by grouping
1个回答
0
投票

IIUC,你可以试试这个:

df["Age"] = df["Age"].map({"X": "easy", "Y": "medium", "Z": "hard"})

out = df.groupby(["Name", "Age"]).size().unstack(fill_value=0)

out = out[["easy", "medium", "hard"]]
Age   easy  medium  hard
Name                    
Jim      1       1     0
Mary     1       1     1
Tom      3       0     0
jack     2       0     0
© www.soinside.com 2019 - 2024. All rights reserved.