使用熊猫和数据框合并不同的excel

时间:2019-02-20 18:03:18

标签: excel pandas dataframe

我有3个优点,需要转换为数据框,应用一些操作,然后另存为一个Excel,该Excel仅针对每个国家/地区包含行“ price1”和“国家/地区”,“年”(“ 2000” ...” 2017')。应使用文件“ FXrates.csv”中的汇率与“国家/地区代码”结合使用,将所有输出1转换为欧元货币。
这些文件可以在
下找到 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"')`

在此处输入代码。

0 个答案:

没有答案