Как найти минимальные и максимальные значения csv-файла на основе другого столбца дат?

#python #pandas #dataframe #csv

#python #pandas #dataframe #csv

Вопрос:

У меня есть csv-файл, который состоит из значений температуры с интервалом в 2 минуты в течение 3 месяцев. Первые 5 строк можно увидеть ниже.

     T1C T2C T1-T2C  U1  U2  Date    year    month   day
0   NaN NaN NaN NaN NaN 2020-04-25  2020    4   25
1   NaN NaN NaN NaN NaN 2020-04-25  2020    4   25
2   NaN NaN NaN NaN NaN 2020-04-25  2020    4   25
3   8,932   6,703   2,229   0,018   0,018   2020-04-25  2020    4   25
4   9,083   6,799   2,284   0,018   0,018   2020-04-25  2020    4   25
  

Я хочу получить максимальные значения в T1C и минимальные значения в T2C для каждого дня. Должен ли я сделать это с помощью groupby, я не мог придумать, как это сделать. Заранее спасибо.

Комментарии:

1. Вы можете попробовать создать цикл. Для каждой итерации вы заменяете значение, если оно меньше (T2C) или больше (T1C), чем предыдущее.

Ответ №1:

Вы можете использовать это:

 result = df.groupby('Date').agg({'T1C': 'max', 'T2C': 'min'})
  

Комментарии:

1. Вероятно, потребуется убедиться, что T1C и T2C на самом деле являются числовыми значениями… они выглядят так, как будто они, вероятно, являются строками в примере

2. Спасибо, это сработало, но по какой-то причине я получаю значение ‘inf’ для минимального значения, может быть, это из-за отрицательных значений?

Ответ №2:

Я буду группировать Day , а затем агрегировать:

 df.groupby('day').agg({'T1C': 'max', 'T2C': 'min'})
  

Комментарии:

1. Да, это помогло, но я получаю значение ‘inf’ для минимального значения. Есть идеи, почему?