Вычислить максимум на интервале, удовлетворяющем условию

У меня есть фрейм данных, который выглядит так:

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 выше, чтобы я мог манипулировать данными за один раз...

df.groupby('Zones')['Distance'].max()?
Dani Mesejo 21.01.2019 18:18

Подойдет что-то вроде Distance.groupby('zone').max().

Quang Hoang 21.01.2019 18:20

Видеть такую ​​лаконичную команду для новичка так приятно) Спасибо! действительно сделал мой день!

akkab 21.01.2019 18:20
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
36
0

Другие вопросы по теме