Данные:
Sr.No Village Taluka District LSWI TEMP FAPAR PAR
0 1 Belundgi Afsalpur Gulbarga 0.299471 19.25 12 2.5
1 2 Belundgi Afsalpur Gulbarga 0.268066 18.26 14 3.2
2 3 Belundgi Afsalpur Gulbarga 0.252687 17.25 14 3.0
3 4 Belundgi Afsalpur Gulbarga 0.271744 16.28 15 2.0
4 5 Belundgi Afsalpur Gulbarga 0.258911 19.26 17 3.0
5 6 Belundgi Afsalpur Gulbarga 0.295071 10.00 15 5.0
6 7 Belundgi Afsalpur Gulbarga 0.297177 11.00 12 4.0
7 8 Gobbur B Afsalpur Gulbarga 0.265798 15.00 14 3.0
8 9 Gobbur B Afsalpur Gulbarga 0.206717 14.25 15 1.0
9 10 Gobbur B Afsalpur Gulbarga 0.134919 21.25 14 2.0
10 11 Gobbur B Afsalpur Gulbarga 0.283957 24.52 15 6.0
11 12 Gobbur B Afsalpur Gulbarga 0.241955 21.25 10 3.0
Я проделал некоторую работу.
import pandas as pd
import numpy as np
df=pd.read_excel(r'C:\Users\lenovo2\Desktop\data.xlsx')
LSWI=df['LSWI']
LSWI_Max=LSWI.loc[df['LSWI'].idxmax()]
W=np.array(1-df['LSWI'])/np.array(1+LSWI_Max)
T1=np.array(df['TEMP']-5)*np.array(df['TEMP']-35)
T2=T1-np.array(df['TEMP']-25)*np.array(df['TEMP']-25)
T=T1/T2
Delta=df['PAR']*df['FAPAR']*3
Выше кода, я должен подать заявление в деревне. Поэтому я пытаюсь использовать функцию для вычисления, но формула функции не работает должным образом, вот мой код, который дает мне ошибку
def f(x):
x['LSWI'] =x.groupby(["Taluka","Village"])['LSWI'].transform('sum')
x['LSWI_Max']=x['LSWI'].loc[df['LSWI'].idxmax()]
x['W']=1-x['LSWI'])/1+x['LSWI_Max']
x['T1']=x['TEMP']-5)*x['TEMP']-35)
x['T2']=x['T1']-df['TEMP']-25)*df['TEMP']-25)
x['T']=x['T1']/x['T2']
x['Delta']=df['PAR']*df['FAPAR']*3
return x
df1=df.groupby(["Taluka","Village"]).apply(f)
Что не так в коде функции, я получил ошибку, любые идеи, как сделать это в формуле функции?