Панды для интерполяции петли - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь интерполировать данные по 7 показателям для 218 стран.У меня есть цикл for, чтобы работать, но у меня проблемы с экспортом моих результатов в .csv.В настоящее время мой фрейм данных «интерполированный» содержит только интерполированные данные для последней страны.

for i in df['Country']:
   country_interp= df[df['Country'] == i]
   upsampled = country_interp.resample('YS') 
   interpolated=upsampled.interpolate(method='linear', limit_area='inside')


Year         Country  Equiped_Actually_Irr    ...     Equiped_Ai        Ai
1992-01-01  Zimbabwe                   NaN    ...            NaN  0.056710
1993-01-01  Zimbabwe                   NaN    ...            NaN  0.056304
1994-01-01  Zimbabwe                   NaN    ...            NaN  0.055898
1995-01-01  Zimbabwe                   NaN    ...            NaN  0.055492
1996-01-01  Zimbabwe                   NaN    ...            NaN  0.055085
1997-01-01  Zimbabwe                   NaN    ...            NaN  0.054679
1998-01-01  Zimbabwe                   NaN    ...            NaN  0.054273

1 Ответ

0 голосов
/ 06 марта 2019

Вы должны создать фрейм данных вне цикла, а затем добавить / объединить вновь сгенерированный фрейм данных с фреймом снаружи.

Попытка:

interpolate = pd.DataFrame()
for i in df['Country']:
   country_interp= df[df['Country'] == i]
   upsampled = country_interp.resample('YS') 
   interpolated=upsampled.interpolate(method='linear', limit_area='inside')
   interpolate = pd.concat(['interpolate', 'interpolated'], 0 , sort = False)

Вы можете получить сообщение об ошибке / предупреждение, связанное с сортировкой. Если это так, вы можете добавить колонки = [] внутри pd.DataFrame ()

...