У меня есть ФР так:линейной регрессии на основе GroupBy
Allotment Year NDVI A_Annex Bachelor
A_Annex 1984 1.0 0.40 0.60
A_Annex 1984 1.5 0.56 0.89
A_Annex 1984 2.0 0.78 0.76
A_Annex 1985 3.4 0.89 0.54
A_Annex 1985 1.6 0.98 0.66
A_Annex 1986 2.5 1.10 0.44
A_Annex 1986 1.7 0.87 0.65
Bachelor 1984 8.9 0.40 0.60
Bachelor 1984 6.5 0.56 0.89
Bachelor 1984 4.2 0.78 0.76
Bachelor 1985 2.4 0.89 0.54
Bachelor 1985 1.7 0.98 0.66
Bachelor 1986 8.9 1.10 0.44
Bachelor 1986 9.6 0.87 0.65
, и я хочу, чтобы запустить регрессии, основанные на GroupBy. Я хочу регрессировать каждый уникальный Allotment
и его значение NDVI
с его ассоциированным столбцом. Поэтому я хочу регрессировать колонку A_Annex
с Allotment
A_Annex
и связанную с ней NDVI
. И тогда я хочу сделать то же самое, но с Bachelor
. По сути, я хочу сопоставлять столбцы с ассоциированным Allotment
, а затем регрессировать значения в столбце с соответствующими значениями NDVI
.
я мог бы сделать это за один надельной, как это:
stat=merge.groupby(['Allotment']).apply(lambda x: sp.stats.linregress(x['A_Annex'], x['NDVI']))
, но мне нужно было бы продолжить, чтобы изменить значение х в sp.stats.linregress(x['A_Annex'], x['NDVI']))
, и я хотел бы избежать этого.
Извините, но я не следую почему вы предшествуете свой фрагмент кода с помощью «Я мог бы сделать это за один надельный, как это:» - он будет делать это для каждого значения «Выделение». Я вообще не понимаю ваш вопрос. –
Не уверен, что это самый лучший способ, но нет реального недостатка для простого цикла 'for' здесь, который я могу видеть:' для x в df.Allotment.unique(): your_regression_code' – JohnE
Кстати, я думаю, самый рекомендуемый способ теперь делать регрессии панд с помощью statsmodels (я добавил тег выше) – JohnE