首页 > 解决方案 > 如何在字典中创建范围

问题描述

我有以下字典:

total_working_years_dict = dict(df.TotalWorkingYears.value_counts())
total_working_years_dict
{10: 202,
 6: 125,
 8: 103,
 9: 96,
 5: 88,
 1: 81,
 7: 81,
 4: 63,
 12: 48,
 3: 42,
 15: 40,
 16: 37,
 13: 36,
 11: 36,
 21: 34,
 17: 33,
 14: 31,
 2: 31,
 20: 30,
 18: 27,
 19: 22,
 23: 22,
 22: 21,
 24: 18,
 25: 14,
 28: 14,
 26: 14,
 0: 11,
 29: 10,
 31: 9,
 32: 9,
 27: 7,
 30: 7,
 33: 7,
 36: 6,
 34: 5,
 37: 4,
 35: 3,
 40: 2,
 38: 1}

关键是工作年限,价值观是拥有这种经验的员工人数。我想转换我的字典,以便在 (0,6)、(6,11) 等范围内给出总工作年数。

你知道怎么做吗?

标签: pythonpandasdataframedictionaryrange

解决方案


让我们从您的 dict 作为一个系列开始:

s = pd.Series(total_working_years_dict)

你可以pandas.cut用来组成你的小组:

s.index = pd.cut(s.index, bins=range(0,100,6))

输出:

(6.0, 12.0]     202
(0.0, 6.0]      125
(6.0, 12.0]     103
(6.0, 12.0]      96
(0.0, 6.0]       88
...
(30.0, 36.0]      3
(36.0, 42.0]      2
(36.0, 42.0]      1
dtype: int64

注意。如果您现在想汇总每个组的计数,那么pandas.cut的初始value_counts. 另外,如果您需要进一步处理,我不明白将 Series 转换为 dict 的意义。


推荐阅读