栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基于Python将单变量面板数据合成多变量面板数据

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于Python将单变量面板数据合成多变量面板数据

对于有些问题时,我们需要对面板数据根据计量经济学的方法进行分析,比如面板门槛回归;但是面板门槛回归涉及的变量不只一个,正常情况下我们收集数据时,都是一个变量存在一个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函数堆叠在一起,形成一个列表,然后需要将列表转化为数据框,并设置列名,最后导出即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/357105.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号