У меня есть 3 экземпляра, которые мне нужно преобразовать в фрейм данных, применить некоторые операции и затем сохранить обратно как один отдельный Excel, который будет содержать для каждой страны только строки 'price1' и столбцы 'Country', Years ('2000'… ''2017' ).Все выходные данные должны быть конвертированы в валюту евро с использованием курсов валют из файла 'FXrates.csv' в сочетании с 'кодом страны'
Файлы можно найти в
https://drive.google.com/open?id=1OfaYvTG5w8Fe5QDFOG5ibD9X052kPbFR
Я пробовал несколько вещей, ноЯ действительно застрял здесь.
Это то, что я пытался, но мне это не кажется прямым, и я уверен, что есть лучшее решение
df = pd.read_excel("..\Excel1.xlsx", skiprows=2, sheet_name='sheet1')
cols1 = list(df.columns)
cols1 = [str(x)[:4] for x in cols1]
cols2 = list(df.iloc[0,:])
cols2 = [str(x) for x in cols2]
cols = [x + "_" + y for x,y in zip(cols1,cols2)]
df.columns = cols
#df = df.drop(["Unna_nan"], axis =1)
df = df.drop(["Unna_nan"], axis =1).rename(columns =
{
'Time_Country' : 'Country',
'Unna_Series' : 'Series',
'Unna_Unit' : 'Unit',
'2000_nan' : '2000',
'2001_nan' : '2001',
'2002_nan':'2002',
'2003_nan' : '2003',
'2004_nan' : '2004',
'2005_nan' : '2005',
'2006_nan' : '2006',
'2007_nan' : '2007',
'2008_nan' : '2008',
'2009_nan' : '2009',
'2010_nan' : '2010',
'2011_nan': '2011',
'2012_nan' : '2012',
'2013_nan' : '2013',
'2014_nan' : '2014',
'2015_nan' : '2015',
'2016_nan' : '2016',
'2017_nan' : '2017'
}
)
#drop first and last rows
df.drop(0,inplace=True)
df.drop(df.tail(1).index, inplace=True)
idx = ['Country', 'Series', 'Unit']
df = df.set_index(idx)
df = df.query('Series == "Output1"')`
введите код здесь`