我有以下示例数据集。
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']
答案 0 :(得分:0)
我会在此处亲自使用.loc
df.loc[df['favorite_color']=='blue','grade'].max()
df.loc[df['favorite_color']=='blue','grade'].min()
如果您不想两次搜索,只需先保存.loc的结果,然后进行汇总
data = df.loc[df['favorite_color']=='blue','grade']
min = data.min()
max = data.max()
如果要搜索每种颜色的最大值和最小值,请使用groupby
grouped = df.groupby('favorite_color')['grade']
max = grouped.max()
min = grouped.min()