对于有些问题时,我们需要对面板数据根据计量经济学的方法进行分析,比如面板门槛回归;但是面板门槛回归涉及的变量不只一个,正常情况下我们收集数据时,都是一个变量存在一个excel的sheet中,再将其合在一张表上面是比较麻烦的,尤其是面对多个变量,因此下面基于python编程给出一种解决的方法。
文章目录- 适用情形
- python代码说明
- 总结
前言
这里主要将如下四个这样的面板数据,合在一张表上
这是最终的结果,对应每个地区4个变量的10年数据。
python代码说明 1.导入数据import pandas as pd
import numpy as np
d1 = pd.read_excel("C:/Users/zlros/Desktop/data.xlsx", sheet_name=0)
d2 = pd.read_excel("C:/Users/zlros/Desktop/data.xlsx", sheet_name=1)
d3 = pd.read_excel("C:/Users/zlros/Desktop/data.xlsx", sheet_name=2)
d4 = pd.read_excel("C:/Users/zlros/Desktop/data.xlsx", sheet_name=3)
2.数据处理
#将省份的一列提取下来 provinces =d1.iloc[:,0]#提取第一列 provinces type(provinces)#显示是序列 d1.set_index(d1.columns[0],inplace=True)#将第一列设置成索引 #同理对所有数据框 d2.set_index(d2.columns[0],inplace=True) d3.set_index(d3.columns[0],inplace=True) d4.set_index(d4.columns[0],inplace=True)3.面板数据生成
data = []
Years = [2010, 2011, 2012, 2013, 2014,2015,2016,2017,2018,2019]#得到的是一个列表
for p in provinces:
for y in Years:
temp = [p,d1.loc[p, y], d2.loc[p, y], d3.loc[p, y], d4.loc[p,y]]
data.append(temp)
print(data)
#上述就得到了一个列表,每一行是对应变量的值,需要再做下处理,以输出行名为省份,列名为各个变量的excel表
das1=pd.Dataframe(data,columns=['id','ERE','ECE','R','TSER'])#可以直接将list变成数据框,并设置列名
das1#完美
#导出
das1.to_excel('C:/Users/zlros/Desktop/test2.xlsx',header=True,index=False)#完美,因为没有将第一列设置成索引,所以就不用输出索引
总结
原理很简单,就是设置一个循环,一行一行的生成我们所需要的最终的表格,然后基于append函数堆叠在一起,形成一个列表,然后需要将列表转化为数据框,并设置列名,最后导出即可。



