查找 pandas 中每个子集的最大值 [duplicate]

Finding the max values of each subset in pandas [duplicate]

提问人:PracticingPython 提问时间:3/11/2022 更新时间:3/11/2022 访问量:139

问:

我正在尝试将每个值除以给定年份的最大值。

df = pd.DataFrame({'Fiscal Year': {0: 2020, 1: 2019, 2: 2021, 3: 2020, 4: 2021},
 'Product Num': {0: 'widget', 1: 'doodad', 2: "widget", 3: 'doodad', 4: 'widget'},
 'Value': {0: 1000, 1: 1100, 2: 900, 3: 1300, 4: 800}})

所以

Product  |   Year    |   New Value 
Widget   |   2020    |   .769
Doodad   |   2019    |     1
Widget   |   2021    |     1
Doodad   |   2020    |     1
Widget   |   2021    |   .889

我知道我可以做 groupby,然后浏览每个条目并以这种方式弄清楚,但这似乎效率不高。有没有更好的方法可以做到这一点?

熊猫 最大

评论

0赞 Paul H 3/11/2022
我建议您浏览 pandas “10 minutes to pandas” 文档页面。它涵盖了所谓的拆分-应用-组合工作流程,这是相当不错的细节
1赞 Henry Ecker 3/11/2022
df['New Value'] = df['Value'] / df.groupby('Fiscal Year')['Value'].transform('max')

答: 暂无答案