【发布时间】:2018-03-13 19:02:20
【问题描述】:
我有一个(此时)大约 4000 行的 pandas DF,我已将其放入我需要的顺序..
我需要按行数将 DF 分成任意 10 个 bin。所以我想将 bin 编号附加到行中,以便将来按 bin 进行聚合计算。每个大约 400 个,因为最后一个 bin 不会被填写。
我现在不想在一个操作中执行此操作,我只需要获取附加到行的 bin 编号。这样我就可以在另一个步骤中通过聚合来进行分组。
我已经绑定了 pd.qcut 和 pd.cut 但似乎没有任何运气。
ccs_category sex race marital_status presence_of_child payer_type no_of_persons occupation education wealth_rate donate_charity zip age 48_prediction count cum_count cum_accurate cum_percent
263 218 M U S N PK 999 99 0 99 U 60657.0 0 0.000538 1 1 0 0.0
2452 250 M W U U NK 0 99 0 99 U 8730.0 29 0.000404 1 2 0 0.0
2814 127 F W U N MK 2 8 2 9 Y 53051.0 75 0.000369 1 3 0 0.0
所以我希望最后一列是 bin_nu,顺序标签为 1-10 (0-9) 就可以了。例如,第一个 400 标签 =1 第二个 400 标签 =2 等等。
results.3['bin_nu']=pd.cut(results3,10,labels=False)
我尝试过 retbins=True 也没有结果 给我:
TypeError: '<=' not supported between instances of 'str' and 'int'
我环顾四周,但似乎大部分都是按值(和时间序列)而不是任意项目计数进行分箱?
这是将 DF 的前十行转换为 dict:
{'48_prediction': {263: 0.0005377883207984269,
578: 0.00030468139448203146,
1168: 0.0003036215784959495,
2021: 0.0003635243338067085,
2452: 0.0004036910831928253,
2518: 0.00029300281312316656,
2814: 0.00036939769051969046,
3687: 0.0003046905330847949,
3963: 0.00029347193776629865,
7132: 0.00035702803870663047},
'age': {263: 0,
578: 68,
1168: 1,
2021: 42,
2452: 29,
2518: 92,
2814: 75,
3687: 40,
3963: 51,
7132: 34},
'ccs_category': {263: '218',
578: '250',
1168: '166',
2021: '90',
2452: '250',
2518: '3',
2814: '127',
3687: '58',
3963: '160',
7132: '196'},
'count': {263: 1,
578: 1,
1168: 1,
2021: 1,
2452: 1,
2518: 1,
2814: 1,
3687: 1,
3963: 1,
7132: 1},
'cum_accurate': {263: 0,
578: 0,
1168: 0,
2021: 0,
2452: 0,
2518: 0,
2814: 0,
3687: 0,
3963: 0,
7132: 0},
'cum_count': {263: 1,
578: 7,
1168: 8,
2021: 4,
2452: 2,
2518: 10,
2814: 3,
3687: 6,
3963: 9,
7132: 5},
'cum_percent': {263: 0.0,
578: 0.0,
1168: 0.0,
2021: 0.0,
2452: 0.0,
2518: 0.0,
2814: 0.0,
3687: 0.0,
3963: 0.0,
7132: 0.0},
'donate_charity': {263: 'U',
578: 'U',
1168: 'Y',
2021: 'U',
2452: 'U',
2518: 'U',
2814: 'Y',
3687: 'U',
3963: 'U',
7132: 'U'},
'education': {263: 0,
578: 0,
1168: 0,
2021: 1,
2452: 0,
2518: 0,
2814: 2,
3687: 0,
3963: 4,
7132: 0},
'marital_status': {263: 'S',
578: 'U',
1168: 'U',
2021: 'M',
2452: 'U',
2518: 'U',
2814: 'U',
3687: 'U',
3963: 'M',
7132: 'U'},
'no_of_persons': {263: 999,
578: 0,
1168: 2,
2021: 2,
2452: 0,
2518: 0,
2814: 2,
3687: 0,
3963: 3,
7132: 0},
'occupation': {263: '99',
578: '99',
1168: '99',
2021: '0',
2452: '99',
2518: '99',
2814: '8',
3687: '99',
3963: '0',
7132: '99'},
'payer_type': {263: 'PK',
578: 'MI',
1168: 'PK',
2021: 'NK',
2452: 'NK',
2518: 'MK',
2814: 'MK',
3687: 'PK',
3963: 'PK',
7132: 'NK'},
'presence_of_child': {263: 'N',
578: 'U',
1168: 'Y',
2021: 'Y',
2452: 'U',
2518: 'U',
2814: 'N',
3687: 'Y',
3963: 'N',
7132: 'U'},
'race': {263: 'U',
578: 'B',
1168: 'W',
2021: 'W',
2452: 'W',
2518: 'W',
2814: 'W',
3687: 'B',
3963: 'W',
7132: 'A'},
'sex': {263: 'M',
578: 'F',
1168: 'M',
2021: 'M',
2452: 'M',
2518: 'M',
2814: 'F',
3687: 'F',
3963: 'F',
7132: 'F'},
'wealth_rate': {263: '99',
578: '7',
1168: '8',
2021: '6',
2452: '99',
2518: '99',
2814: '9',
3687: '0',
3963: '6',
7132: '8'},
'zip': {263: 60657.0,
578: 76021.0,
1168: 85711.0,
2021: 7747.0,
2452: 8730.0,
2518: 30680.0,
2814: 53051.0,
3687: 7740.0,
3963: 62025.0,
7132: 19082.0}}
【问题讨论】:
-
嘿,你能把你的数据的一个小sn-p添加为字典吗?
-
问题的一部分是它是一个 df.. 但我添加了它