依然是面板數(shù)據(jù)預(yù)處理問(wèn)題贤斜。
這次總結(jié)經(jīng)驗(yàn)策吠,簡(jiǎn)化方法逛裤,用list規(guī)避了惱人的合并索引不匹配。
面對(duì)棘手的問(wèn)題猴抹,最好的方法可能正是最簡(jiǎn)單暴力的方法带族,所謂快刀斬亂麻是也。
只要能解決問(wèn)題蟀给,又何苦老是整些有的沒(méi)的給自己挖坑蝙砌?(身處坑底的我一臉認(rèn)真的說(shuō))
代碼請(qǐng)參考:
# -*- coding: utf-8 -*-
# 感謝pandas救我??命
import pandas as pd
# 拼接
def rs(filepath):
df = pd.read_excel(filepath,sheet_name=0)
df.columns = ['region', '2016','2015','2014', '2013','2012','2011', '2010','2009','2008']
df = df.drop(labels = ['region'], axis=1)
l = pd.Series()
for i in range(1, 10):
l = pd.concat([l, df.iloc[:,9-i]])
l = list(l)
return(l)
data1 = rs("客運(yùn)量.xls")
data2 = rs("貨運(yùn)周轉(zhuǎn)量.xls")
data3 = rs("固定資產(chǎn)投資.xls")
data4 = rs("郵電業(yè)務(wù)量.xls")
data5 = rs("技術(shù)市場(chǎng)成交額.xls")
# 年份
years = [2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016]
years = years*31
years = sorted(years)
# 地區(qū)編號(hào),省份
rg=[
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
]
prv = [
'北京',
'天津',
'河北',
'山西',
'內(nèi)蒙古',
'遼寧',
'吉林',
'黑龍江',
'上海',
'江蘇',
'浙江',
'安徽',
'福建',
'江西',
'山東',
'河南',
'湖北',
'湖南',
'廣東',
'廣西',
'海南',
'重慶',
'四川',
'貴州',
'云南',
'西藏',
'陜西',
'甘肅',
'青海',
'寧夏',
'新疆'
]
rg = rg*9
prv = prv*9
# 輸出
data = pd.DataFrame({
'region': rg,
'prv' : prv,
'years' : years,
'pop' : data1,
'cmd' : data2,
'fin' : data3,
'inf' : data4,
'tec' : data5,
})
# 用encoding="utf-8-sig"防止出現(xiàn)亂碼
data.to_csv('effect.csv', index=False,encoding="utf-8-sig")