панды для интерполяции цикла

#pandas #loops #csv #interpolation

#панды #циклы #csv #интерполяция

Вопрос:

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

 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:

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

Попробуйте:

 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()

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

1. При запуске кода я получаю следующую ошибку: TypeError: не удается объединить объект типа «<class ‘str’>»; только pd.Series, pd.DataFrame и pd. Объекты Panel (устаревшие) допустимы.

2. Вы уверены, что interpolated — это область данных?

3. да, он перечисляет это как фрейм данных