我有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"')`
在此处输入代码。