Слияние разных превосходств с использованием панд и датафреймов - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть 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"')`

введите код здесь`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...