У меня есть фрейм данных, который выглядит так:
ID Zones Distance
E18 A 0.51
E22 A 3.92
E23 A 1.05
E26 A 0.675
E27 A 2.12
E18 B 0.51
E22 B 3.92
E23 C 1.05
E26 C 0.675
Что я хотел бы сделать, так это найти максимальное значение за интервал.
Так, например, для зоны "А" максимальное "Расстояние" равно 3.92 и так для всех "Зон"
Я придумал следующий цикл, чтобы разделить фрейм данных на отдельные «Зоны» в качестве словаря:
csv_file=new_path+"distance"+".csv"
distance=pd.read_csv(csv_file, error_bad_lines=False)
distance_by_zones = {}
zones=['A', 'B', 'C', 'D', 'D']
for i in range(len(zones)):
distance_by_zones[i]=distance.loc[distance["Zones"].isin([zones[i]])]
Этот код идеально разделяет фрейм данных на разные группы для каждой «Зоны», например:
print(distance_by_zones[2])
Unnamed: 0 ID Zones Distance
10 E18 C 0.57
11 E22 C 4.20
12 E23 C 1.13
13 E26 C 0.91
14 E27 C 2.43
Теперь мне нужно рассчитать максимальное расстояние в каждой из «зон». Так, например, вывод будет: max_distance_C=4,20
Было бы здорово, если бы эта операция выполнялась в for loop выше, чтобы я мог манипулировать данными за один раз...
Подойдет что-то вроде Distance.groupby('zone').max().
Видеть такую лаконичную команду для новичка так приятно) Спасибо! действительно сделал мой день!






df.groupby('Zones')['Distance'].max()?