Мне нужно разделить данные в базе данных csv с использованием pandas на python и записать их в файл xlsx с несколькими листами, а также создать дополнительный каталог

#python #pandas #export #calculated-columns #data-conversion

#python #pandas #экспорт #вычисляемые столбцы #преобразование данных

Вопрос:

У меня есть база данных (доступная: https://datacatalog .worldbank.org/search/dataset/0041443/World—Global-Tracking-Framework , загрузить CSV-файл «Результаты индикатора возобновляемых источников энергии»), с которым мне нужно работать и манипулировать. Цель состоит в том, чтобы импортировать в python с помощью pandas базу данных, удалить 2 столбца, добавить и дополнительный столбец в конце, при этом содержимое составляет среднее количество за 24 года сбора данных (1990-2014). После того, как все это будет сделано, в первом столбце должно быть название серии, состоящее из [‘Общее конечное потребление энергии (TFEC) (TJ)’, ‘Доля возобновляемых источников энергии в TFEC (%)’, ‘Потребление возобновляемых источников энергии (TJ)’, ‘Доля возобновляемых источников электроэнергии в общем объеме производства электроэнергии (%)’, ‘Общая выработка электроэнергии (ГВтч)’, ‘Выработка возобновляемой электроэнергии (ГВтч)’], названия стран, а затем данные за 1990-2014 годы и среднее значение. Проблема, с которой я сталкиваюсь, заключается в том, что данные разделяются дважды по столбцам, сначала по названию серии, а затем по стране. Я хотел бы вывести эти данные в файл xlsx, где файл Excel содержит 6 листов, каждый лист содержит данные относительно названия серии. т.е. Один лист для общего конечного потребления энергии (TFEC) (TJ), где в первом столбце указаны названия стран, а затем данные за последующие годы, а затем то же самое для другой серии.

Я новичок в кодировании, и пока мне трудно найти решение проблемы. ниже приведен код, который я смог придумать до сих пор. PS я использую jupyter notebook для программирования.

 1: import pandas as pd
2: df = pd.read_csv('gtfrenewableenergydata.csv')
3: df.drop(['Series Code', 'Country Code'], inplace=True, axis=1)
4: df.insert(27,"Total Average",df.mean(axis=1))
5: my_writer = pd.ExcelWriter('ExcelProject.xlsx', engine = 'xlsxwriter')
6: df.to_excel(my_writer, sheet_name = 'Renewable Energy Project', index = False)
7: my_writer.save()
 

Я знаю в строке 4: код неверен, поскольку новый столбец выдает NaN, а не среднее значение за 24 года. У меня также вообще нет кода для разделения данных на несколько листов, поскольку я пока не могу этого понять.

ЛЮБАЯ ПОМОЩЬ БУДЕТ С БЛАГОДАРНОСТЬЮ!!

Ответ №1:

Для файла Excel вы должны сделать это для записи на несколько листов. Это предполагает, что Total final energy consumption (TFEC) (TJ) это столбец, который вы хотите разделить, чтобы получить отдельные листы.

 my_writer = pd.ExcelWriter('ExcelProject.xlsx', engine = 'xlsxwriter')
for key,g in df.groupby('Total final energy consumption (TFEC) (TJ)'):    
   g.to_excel(my_writer, sheet_name=key, index=False, header=True)