我有以下样本数据集。
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']
发布于 2018-07-05 22:50:26
我个人会在这里使用.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()
https://stackoverflow.com/questions/51193910
复制相似问题