#python #pandas #dataframe #function #filter
Вопрос:
У меня есть фрейм данных с 4 столбцами: «Дата» (в строковом формате), «Час» (в строковом формате), «Energia_Attiva_Ingresso_Delta» и «Energia_Attiva_Uscita_Delta». Очевидно, что для каждой даты есть несколько часов. Я хотел бы рассчитать столбец для общего фрейма данных, но на ежедневной основе. В принципе: работа функции должна быть рассчитана для каждой отдельной даты. Итак, я подумал о том, чтобы перебрать отдельные значения столбца даты и отфильтровать фрейм данных с помощью .loc, а затем передать отфильтрованный df в функцию. В функции я должен повторно отфильтровать df с помощью loc (для целей расчета).
Вот код, который я написал, и, как вы можете видеть в функции, мне нужно итеративно работать со строкой с максимальным значением «Energia_Ingresso_Delta»; для этого я снова использую .функция loc:
#function def optimize(df): min_index = np.argmin(df.Margine) max_index = np.argmax(df.Margine) Energia_Prelevata_Da_Rete = df[df.Margine lt; 0]['Margine'].sum().round(1) Energia_In_Eccesso = df[df.Margine gt; 0]['Margine'].sum().round(1) carico_medio = (Energia_In_Eccesso / df[df['Margine']lt;0]['Margine'].count()).round(1) while (Energia_In_Eccesso != 0): max_index = np.argmax(df.Energia_Ingresso_Delta) df.loc[max_index, 'Energia_Attiva_Ingresso_Delta'] = df.loc[max_index,'Energia_Attiva_Ingresso_Delta'] carico_medio Energia_In_Eccesso = (Energia_In_Eccesso - carico_medio).round(1) #Call function with "partial dataframe". The dataframe is called "prova" for items in list(prova.Data.unique()): function(prova.loc[[items]])
Но я продолжаю получать эту ошибку: «Ни один из [индекса([‘2021-05-01′], dtype=’объект’)] не находится в [индексе]» Кто-нибудь может мне помочь? 🙂 Заранее спасибо
Комментарии:
1. Предоставьте образец данных.
2. Это может быть связано с лишними скобками; это должно быть «функция(prova.loc[элементы])», а не «функция(prova.loc[[элементы]])»