Суммирование значений в столбцах до определенного значения для многолетних Jahre

#python #insert #limit #cumsum

Вопрос:

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

введите описание изображения здесь

Он содержит дату, год и среднюю температуру воздуха (T_mean) с 01.01.1937 по 31.12.2020.

Я хочу суммировать «T_mean» за каждый год. В точке, где «T_mean» достигает или пересекает «200«, Я хочу узнать дату, когда это произойдет.

До сих пор я могу суммировать «T_mean» с Sum_T_mean = np.cumsum(dataset['T_mean'])

К сожалению, это суммирует ВСЕ «T_mean» с 1937 по 2020 год.

Поэтому я хотел добавить такой цикл:

 if i in dataset['Year'] == 1937:
    Sum_1937 = np.cumsum(dataset['T_mean'])
 

и добавьте новый столбец с суммой T_mean из 1937 года с:

 dataset.insert(3, "Sum_1937", Sum_1937, allow_duplicates=False)
 

Это тоже не работает.

Если бы коды работали, я мог бы напечатать дату, когда, например, «Sum_1937» достигает или пересекает 200 с:

 limit = 200
1937_over = dataset[dataset['Sum_1937'] >= limit]
1937_over.head(1)
 

Конечно, это не самый элегантный способ, потому что мне нужно повторять его каждый год, но пока я не могу найти более быстрый способ.

Спасибо за любые советы!

Для создания небольшого фрейма данных вы можете использовать:

 Date = [19370101, 19370102, 19370103, 19370104, 19370105, 19370106]
Year = [1937, 1937, 1937, 1937, 1937, 1937]
T_mean = [5.8, 5.6, 9.2, 8.0, 4.3, 6.4]

df = pd.DataFrame(Date, columns = ['Date'])
df.insert(1, "Year", Year, allow_duplicates=False)
df.insert(2, "T_mean", T_mean, allow_duplicates=False)
 

Мой желаемый результат должен выглядеть следующим образом:
введите описание изображения здесь

Я хотел бы добавить столбец за каждый год (1937-2020), чтобы вычислить точку, в которой T_mean каждого года достигает или пересекает 200.

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

1. Было бы мило с вашей стороны предоставить образец фрейма данных в форме, которую мне не нужно вводить вручную.

2. В любом случае, df.groupby('Year')['T_mean'].transform('cumsum') ?

3. Пожалуйста, отредактируйте свой вопрос, чтобы добавить код.

4. Я добавил код к своему вопросу, чтобы создать образец фрейма данных 🙂

5. Я прошу прощения. Надеюсь, теперь моя правка стала лучше.