Проблема с вопросом 1, неделя 3, веб-сайт курса «Введение в науку о данных на Python»Python

Программы на Python
Anonymous
Проблема с вопросом 1, неделя 3, веб-сайт курса «Введение в науку о данных на Python»

Сообщение Anonymous »

Загрузите данные об энергии из файла Energy Indicators.xls, который представляет собой список показателей энергоснабжения и производства электроэнергии из возобновляемых источников, предоставленный Организацией Объединенных Наций за 2013 год, и должен быть помещен в DataFrame с именем переменной Energy.

Имейте в виду, что это файл Excel, а не файл значений, разделенных запятыми. Кроме того, обязательно исключите информацию нижнего колонтитула и заголовка из файла данных. Первые два столбца не нужны, поэтому от них следует избавиться и изменить названия столбцов так, чтобы столбцы были такими:

['Страна', 'Энергоснабжение', 'Энергоснабжение на душу населения', '% возобновляемых источников энергии']

Преобразовать энергоснабжение в гигаджоули (в петаджоуль). Для всех стран, в которых отсутствуют данные (например, данные с "..."), убедитесь, что это отражено в виде значений np.NaN.

Переименуйте следующий список стран (для использования в последующих вопросах):

"Республика Корея": "Южная Корея",
"Соединенные Штаты Америки": "Соединенные Штаты",
"Соединенное Королевство Великобритании и Северной Ирландии": "Соединенные Штаты" Королевство",
"Китай, Специальный административный район Гонконг": "Гонконг"

Есть также несколько стран, в названии которых есть цифры и/или круглые скобки. Обязательно удалите их,

например,

"Боливия (Многонациональное Государство)" должно быть "Боливия",

"Швейцария17" должно быть "Швейцария".

Затем загрузите данные о ВВП из файла world_bank.csv, который представляет собой csv, содержащий ВВП стран с 1960 по 2015 год от Всемирного банка. Назовите этот DataFrame GDP.

Обязательно пропустите заголовок и переименуйте следующий список стран:

"Корея, Республика.": "Южная Корея",
"Иран, Исламская Республика": "Иран",
"САР Гонконг, Китай": "Гонконг"

Наконец, загрузите журнал Sciamgo Journal и данные рейтинга стран по энергетике и энергетическим технологиям из файла scimagojr-3.xlsx, в котором страны ранжируются на основе их публикаций в журналах в вышеупомянутой области. Назовите этот DataFrame ScimEn.

Объедините три набора данных: ВВП, Энергетика и ScimEn в новый набор данных (используя пересечение названий стран). Используйте данные о ВВП только за последние 10 лет (2006–2015 гг.) и только 15 стран с самым высоким рейтингом Scimagojr (ранг с 1 по 15).

Индексом этого DataFrame должно быть название страны, а столбцы должны быть ['Ранг', 'Документы', 'Цитируемые документы', 'Цитаты', 'Самоцитирования', «Цитирование на документ», «Индекс H», «Энергоснабжение», «Энергоснабжение на душу населения», «% возобновляемых источников энергии», «2006», «2007», «2008», «2009», «2010», «2011», «2012», «2013», «2014», «2015».

Эта функция должна возвращать DataFrame с 20 столбцами и 15 записями.

Код: Выделить всё

def answer_one():
import pandas as pd
import numpy as np
energy = pd.read_excel('Energy+Indicators.xls').drop(
['Environmental Indicators: Energy'],axis=1).dropna(axis=1,how='all'
).dropna(axis=0,how='any')
for col in energy.columns:
if col=='Unnamed: 1':
energy.rename(columns={col:'Country'}, inplace=True)
if col=='Unnamed: 3':
energy.rename(columns={col:'Energy Supply'}, inplace=True)
if col=='Unnamed: 4':
energy.rename(columns={col:'Energy Supply per Capita'}, inplace=True)
if col=='Unnamed: 5':
energy.rename(columns={col:'% Renewable'}, inplace=True)
energy.replace( '...',np.nan, inplace=True)
energy['Energy Supply'] = energy['Energy Supply'].apply(lambda x: x*1000000)
energy.set_index('Country',inplace=True)
num=['0','1','2','3','4','5','6','7','8','9']
for idx in energy.index:
if idx=="Republic of Korea":
energy.rename(index={idx:"South Korea"}, inplace=True)
if idx=="United States of America":
energy.rename(index={idx:"United States"}, inplace=True)
if idx=="United Kingdom of Great Britain and Northern Ireland":
energy.rename(index={idx:"United Kingdom"}, inplace=True)
if idx=="China, Hong Kong Special Administrative Region":
energy.rename(index={idx:"Hong Kong"}, inplace=True)
i=0
for x in idx:
if idx[i]=='(':
energy.rename(index={idx:idx[:i-1]}, inplace=True)
if (idx[i] in num):
energy.rename(index={idx:idx[:i]}, inplace=True)
i+=1
GDP=pd.read_csv('world_bank.csv',index_col=0,skiprows=4)
for idx in GDP.index:
if idx=="Korea, Rep.":
GDP.rename(index={idx:"South Korea"}, inplace=True)
if idx=="Iran, Islamic Rep.":
GDP.rename(index={idx:"Iran"}, inplace=True)
if idx=="Hong Kong SAR, China":
GDP.rename(index={idx:"Hong Kong"}, inplace=True)
ScimEn=pd.read_excel('scimagojr-3.xlsx')
columns_to_keep=[]
for i in range(10):
columns_to_keep.append(str(2006+i))
GDP=GDP[columns_to_keep]
ScimEn=ScimEn.where(ScimEn['Rank']

Вернуться в «Python»