我正在使用pandas.qcut将数据分为5组,并希望根据qcut的最小和最大分数来标记每个组。
例如,我尝试了数据框列中的“年龄”数据。
df['age group'] = pd.qcut(df['age'], 5)
它导致了
Categories (5, interval[float64]): [(37.999, 61.0] < (61.0, 67.0] < (67.0, 73.0] < (73.0, 78.0] < (78.0, 93.0]]
预期结果是根据最小和最大值自动给每个组加上标签,例如 类别1标签为“ 37.999至60.999”,等等。
现在,我手动查看每个类别范围进行标记。我应该如何定义标签以使其达到预期效果?谢谢!
答案 0 :(得分:2)
您可以重新定义类别:
df['age group'] = pd.qcut(df['age'], 5)
df['age group'].cat.categories = [f'{i.left} to {i.right}' for i in df['age group'].cat.categories]