给出此数据框:
HOUSEID PERSONID HHSTATE TRPMILES
0 20000017 1 IN 22.000000
1 20000017 1 IN 0.222222
2 20000017 1 IN 22.000000
3 20000017 2 IN 22.000000
4 20000017 2 IN 0.222222
5 20000017 2 IN 0.222222
6 20000231 1 TX 3.000000
7 20000231 1 TX 2.000000
8 20000231 1 TX 6.000000
9 20000231 1 TX 5.000000
我想基于TRPMILES
和HOUSEID
的唯一组合对PERSONID
中的值求和:
HOUSEID PERSONID HHSTATE TRPMILES
0 20000017 1 IN 66.666666
1 20000017 2 IN 22.444444
2 20000231 1 TX 16.000000
然后基于TRPMILES
对HHSTATE
进行归一化。我的意思是将HHSTATE
类别中的每个数字除以HHSTATE
列中的最大旅行里程数。
(IN
的最大值为66.666666,因此,将其自身除以1.0000000,除以第二行则为0.3366666)
HOUSEID PERSONID HHSTATE TRPMILES
0 20000017 1 IN 1.0000000
1 20000017 2 IN 0.3366666
2 20000231 1 TX 1.0000000
我有一个大数据框,其中包含许多可能的值HHSTATE
。
谢谢
答案 0 :(得分:2)
尝试使用groupby
,然后执行div
s=df.groupby(['HOUSEID', 'PERSONID', 'HHSTATE'])['TRPMILES'].sum()
s=s.div(s.max(level=[2]),level=2).reset_index()