如何用Python的groupby函数实现分组后选取每个组的最大值和最小值?
- 内容介绍
- 文章标签
- 相关推荐
本文共计339个文字,预计阅读时间需要2分钟。
当前需要将course分组,然后选择每一组中的最大值和最小值,并保留下来。具体实现如下:
使用groupby函数,但无法直接得到此结果,需要在groupby函数上添加apply函数和lambda函数。代码如下:
pythonimport pandas as pd
示例数据data={ 'course': ['math', 'math', 'english', 'english', 'science', 'science'], 'score': [90, 85, 80, 95, 70, 60]}
df=pd.DataFrame(data)
使用groupby和apply以及lambda函数实现result=df.groupby('course').apply(lambda x: pd.Series([x.max(), x.min()])).reset_index()
print(result)
现在需要将course分组,然后选择出每一组里面的最大值和最小值,并保留下来
实现下面数据结果:
直接使用groupby函数,不能直接达到此效果,需要在groupby函数上添加apply和lambda函数
代码如下:
import pandas as pd data = pd.read_excel('group_apply.xlsx') data1 = data.groupby('course').apply(lambda t: t[(t['grade']==t['grade'].min()) ^ (t['grade']==t['grade'].max())])
前面的index,是两列,所以需要处理一下,这个是groypby函数处理之后所产生,只需要删除即可
data2 = data1.reset_index(drop=True)
代码整合:
import pandas as pd data = pd.read_excel('group_apply.xlsx') data1 = data.groupby('course').apply(lambda t: t[(t['grade']==t['grade'].min()) ^ (t['grade']==t['grade'].max())]) data2 = data1.reset_index(drop=True)
写入到excel中:
到此这篇关于python groupby函数实现分组选取最大值与最小值的文章就介绍到这了,更多相关python groupby内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!
本文共计339个文字,预计阅读时间需要2分钟。
当前需要将course分组,然后选择每一组中的最大值和最小值,并保留下来。具体实现如下:
使用groupby函数,但无法直接得到此结果,需要在groupby函数上添加apply函数和lambda函数。代码如下:
pythonimport pandas as pd
示例数据data={ 'course': ['math', 'math', 'english', 'english', 'science', 'science'], 'score': [90, 85, 80, 95, 70, 60]}
df=pd.DataFrame(data)
使用groupby和apply以及lambda函数实现result=df.groupby('course').apply(lambda x: pd.Series([x.max(), x.min()])).reset_index()
print(result)
现在需要将course分组,然后选择出每一组里面的最大值和最小值,并保留下来
实现下面数据结果:
直接使用groupby函数,不能直接达到此效果,需要在groupby函数上添加apply和lambda函数
代码如下:
import pandas as pd data = pd.read_excel('group_apply.xlsx') data1 = data.groupby('course').apply(lambda t: t[(t['grade']==t['grade'].min()) ^ (t['grade']==t['grade'].max())])
前面的index,是两列,所以需要处理一下,这个是groypby函数处理之后所产生,只需要删除即可
data2 = data1.reset_index(drop=True)
代码整合:
import pandas as pd data = pd.read_excel('group_apply.xlsx') data1 = data.groupby('course').apply(lambda t: t[(t['grade']==t['grade'].min()) ^ (t['grade']==t['grade'].max())]) data2 = data1.reset_index(drop=True)
写入到excel中:
到此这篇关于python groupby函数实现分组选取最大值与最小值的文章就介绍到这了,更多相关python groupby内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

