熊猫获取其他特定列值的最大值和最小值

时间:2018-07-05 14:30:33

标签: pandas

我有以下示例数据集。

 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()

我有兴趣找到特定颜色的最大,最小等级,例如说“蓝色”。如何找到它。

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

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']

1 个答案:

答案 0 :(得分:0)

我会在此处亲自使用.loc

df.loc[df['favorite_color']=='blue','grade'].max()
df.loc[df['favorite_color']=='blue','grade'].min()

编辑1

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

data = df.loc[df['favorite_color']=='blue','grade']
min = data.min()
max = data.max()

编辑2

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

grouped = df.groupby('favorite_color')['grade']
max = grouped.max()
min = grouped.min()
相关问题