在处理DataFrame时,某一列/某个字段在不同类别中有不同的值。
提取某个类别中该字段最大值所对应的行,需要用group by 方法。
输入:
year num name
0 2016 2 a
1 2016 5 b
2 2017 4 c
3 2017 7 d
4 2017 8 e
5 2018 90 f
6 2018 78 g
期望输出:
year num name
0 2016 5 b
1 2017 8 e
2 2018 90 g
Python 实现代码:
# -*- coding: utf-8 -*-
# @Author : 小晓酱
# @File : test.py
# @Software: PyCharm
import pandas as pd
data = {'year': [2016, 2016, 2017, 2017, 2017, 2018, 2018],
'num': [2, 5, 4, 7, 8, 90, 78],
'name': ['a', 'b', 'c', 'd', 'e', 'f', 'g']}
df = pd.DataFrame(data)
df_groupby = df.groupby(by='year', as_index=False).max()