#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. да, он перечисляет это как фрейм данных