首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pandas获取特定其他列值的最大值和最小值

pandas获取特定其他列值的最大值和最小值
EN

Stack Overflow用户
提问于 2018-07-05 22:30:33
回答 1查看 415关注 0票数 0

我有以下样本数据集。

代码语言:javascript
运行
复制
 raw_data = {'name': ['Willard Morris', 'Al Jennings', 'Omar Mullins', 'Spencer 
 McDaniel'],
            'age': [20, 19, 22, 21],
            'favorite_color': ['blue', 'blue', 'yellow', "green"],
            'grade': [88, 92, 95, 70]}

 df = pd.DataFrame(raw_data)
 df.head()

我有兴趣找到最大,最低等级的特定颜色说‘蓝色’我怎么才能找到它。

我的解决方案如下..有没有更好的方法。我有一个庞大的数据集,在选择可用选项时,性能也是一个标准。

代码语言:javascript
运行
复制
for i in df.index:
    if df.at[i, 'server_ip'] == 'blue':
        if min_grade > df.at[i,'grade']:
           min_grade = df.at[i,'grade']
        if max_grade < df.at[i,'grade']:
           max_grade = df.at[i,'grade']
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-05 22:50:26

我个人会在这里使用.loc

代码语言:javascript
运行
复制
df.loc[df['favorite_color']=='blue','grade'].max()
df.loc[df['favorite_color']=='blue','grade'].min()

编辑1

如果您不想搜索两次,只需先保存.loc的结果,然后进行聚合

代码语言:javascript
运行
复制
data = df.loc[df['favorite_color']=='blue','grade']
min = data.min()
max = data.max()

编辑2

如果要搜索每种颜色的最大值和最小值,请使用groupby

代码语言:javascript
运行
复制
grouped = df.groupby('favorite_color')['grade']
max = grouped.max()
min = grouped.min()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51193910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档