Python 通过获取组计数的最大值来分配列值
我有以下数据帧Python 通过获取组计数的最大值来分配列值,python,pandas,group-by,max,Python,Pandas,Group By,Max,我有以下数据帧 Year Sector Number Veh Types Month Count 2015 AA 173 F Apr 277 2015 AA 173 F Aug 277 2015 AA 173 F Dec 277 2015 AA 173 F
Year Sector Number Veh Types Month Count
2015 AA 173 F Apr 277
2015 AA 173 F Aug 277
2015 AA 173 F Dec 277
2015 AA 173 F Feb 277
2015 AA 173 F Jul 277
2015 AA 173 F Jun 277
2015 AA 173 F Mar 277
2015 AA 173 G Feb 82
2015 AA 173 G Jan 82
2015 AA 173 G Mar 82
2016 AA 173 A Apr 277
2016 AA 173 A Aug 277
2016 AA 173 A Dec 277
2016 AA 173 A Feb 277
2016 AA 173 A Jul 277
2016 AA 173 A Jun 277
2016 AA 173 A Mar 277
2016 AA 173 A May 277
2016 AA 173 F Nov 277
2016 AA 173 F Oct 277
2016 AA 173 F Sep 277
2016 AA 173 G Feb 82
2016 AA 173 G Jan 82
2016 AA 173 G Mar 82
我需要获得每年列计数的最大值,并获得相应的“Veh Type”列N,然后分配到每个组的“Max_Veh_Type”列中
我的预期产出是:
Year Sector Number Veh Types Month Count Max_Veh_type
2015 AA 173 F Apr 277 F
2015 AA 173 F Aug 277 F
2015 AA 173 F Dec 277 F
2015 AA 173 F Feb 277 F
2015 AA 173 F Jul 277 F
2015 AA 173 F Jun 277 F
2015 AA 173 F Mar 277 F
2015 AA 173 G Feb 82 F
2015 AA 173 G Jan 82 F
2015 AA 173 G Mar 82 F
2016 AA 173 A Apr 277 A
2016 AA 173 A Aug 277 A
2016 AA 173 A Dec 277 A
2016 AA 173 A Feb 277 A
2016 AA 173 A Jul 277 A
2016 AA 173 A Jun 277 A
2016 AA 173 A Mar 277 A
2016 AA 173 A May 277 A
2016 AA 173 F Nov 277 A
2016 AA 173 F Oct 277 A
2016 AA 173 F Sep 277 A
2016 AA 173 G Feb 82 A
2016 AA 173 G Jan 82 A
2016 AA 173 G Mar 82 A
我知道在一组中获得最大值。实现上述目标的任何帮助都将是巨大的帮助。
为我提供了一系列方便的最大行数出现的位置df.groupby('Year').Count.idxmax()
- 我可以将
与dict-like系列map
一起使用,以获得指数中的一系列年份和车辆类型值vt
- 然后用它来映射
系列,以获得我们想要的列yr
- 使用
创建新列assign
谢谢你的回复。有没有办法使用groupby函数来实现这一点?@ceeka9388解决方案中有一个groupby。对不起,我的错。再次感谢。快速提问…当我尝试按df.assign(Max_Fleet=yr.map(df.groupby(['Year','Sector','Number'])['Count'].idxmax().map(vt)))等多个列分组时…我在Max_Veh_类型列中得到了Nan…我在这里犯了什么错误吗?下面的解决方案适用于单个列groupby。如果需要对多个列进行分组并获取结果,该怎么办。需要帮助。
vt, yr = df['Veh Types'], df['Year']
df.assign(Max_Veh_Type=yr.map(df.groupby('Year').Count.idxmax().map(vt)))
Year Sector Number Veh Types Month Count Max_Veh_Type
0 2015 AA 173 F Apr 277 F
1 2015 AA 173 F Aug 277 F
2 2015 AA 173 F Dec 277 F
3 2015 AA 173 F Feb 277 F
4 2015 AA 173 F Jul 277 F
5 2015 AA 173 F Jun 277 F
6 2015 AA 173 F Mar 277 F
7 2015 AA 173 G Feb 82 F
8 2015 AA 173 G Jan 82 F
9 2015 AA 173 G Mar 82 F
10 2016 AA 173 A Apr 277 A
11 2016 AA 173 A Aug 277 A
12 2016 AA 173 A Dec 277 A
13 2016 AA 173 A Feb 277 A
14 2016 AA 173 A Jul 277 A
15 2016 AA 173 A Jun 277 A
16 2016 AA 173 A Mar 277 A
17 2016 AA 173 A May 277 A
18 2016 AA 173 F Nov 277 A
19 2016 AA 173 F Oct 277 A
20 2016 AA 173 F Sep 277 A
21 2016 AA 173 G Feb 82 A
22 2016 AA 173 G Jan 82 A
23 2016 AA 173 G Mar 82 A