python - 熊猫数据框多个分组过滤
问题描述
我有以下数据框:
df2 = pd.DataFrame({'season':[1,1,1,2,2,2,3,3],'value' : [-2, 3,1,5,8,6,7,5], 'test':[3,2,6,8,7,4,25,2],'test2':[4,5,7,8,9,10,11,12]},index=['2020', '2020', '2020','2020', '2020', '2021', '2021', '2021'])
df2.index= pd.to_datetime(df2.index)
df2.index = df2.index.year
print(df2)
season test test2 value
2020 1 3 4 -2
2020 1 2 5 3
2020 1 6 7 1
2020 2 8 8 5
2020 2 7 9 8
2021 2 4 10 6
2021 3 25 11 7
2021 3 2 12 5
我想对其进行过滤以获取该年每一年和该年每个季节的“值”列的最大值。我怎样才能有效地做到这一点?
预期结果:
print(df_result)
season value test test2
year
2020 1 3 2 5
2020 2 8 7 9
2021 2 6 4 10
2021 3 7 25 11
感谢您的帮助,
皮埃尔
解决方案
这是一个groupby
操作,但有点不重要,所以发布作为答案。
(df2.set_index('season', append=True)
.groupby(level=[0, 1])
.value.max()
.reset_index(level=1)
)
season value
2020 1 4
2020 2 8
2021 2 6
2021 3 7
推荐阅读
- javascript - 如何在第二次播放时停止 Safari 剪辑音频的时间片段
- javascript - 自定义交换在冒泡排序中失败
- jestjs - react-navigation:开玩笑地测试导航器内组件的标题后退按钮逻辑
- database - 将列表数据反射回 UI [Flutter]
- laravel - Laravel Livewire,如何在动态字段中应用 select2
- javascript - 使用带有反应窗口和粘性列的反应表
- python - 如何解决odoo上的错误time.clock()
- google-bigquery - 如何在 google bigquery 中创建表的克隆
- powershell - 将(字符串)变量设置为等于另一个(字符串)变量,包括修改
- character-encoding - LSTM 模型似乎没有从训练中学习