大数跨境
0
0

2010-2021年城市高铁网络及实证指标Python代码

2010-2021年城市高铁网络及实证指标Python代码 数据皮皮侠
2023-03-24
0

高铁开通对于降低交通成本、增强信息交流等具有重要意义,对于经管研究价值巨大。本文分享基于高铁线路数据构建高铁网络的主要思路Python代码。获取本文案例数据及全部详细代码可上方扫码购买“Python社会网络分析

一、高铁网络经管实证研究应用文章参考

  • 文雁兵, 张梦婷, 俞峰. 中国交通基础设施的资源再配置效应[J]. 经济研究.2022,57(01)
  • 唐宜红, 俞峰, 林发勤,等. 中国高铁,贸易成本与企业出口研究[J]. 经济研究, 2019, 54(7):16.
  • 孙伟增, 牛冬晓, 万广华. 交通基础设施建设与产业结构升级——以高铁建设为例的实证分析[J].管理世界. 2022,38(03)
  • 郭照蕊, 黄俊. 高铁时空压缩效应与公司权益资本成本——来自A股上市公司的经验证据[J]. 金融研究, 2021(7):17.
  • 诸竹君, 黄先海, 王煌. 交通基础设施改善促进了企业创新吗?——基于高铁开通的准自然实验[J]. 金融研究, 2019(11):17.
  • 杨青, 吉赟, 王亚男. 高铁能提升分析师盈余预测的准确度吗?——来自上市公司的证据[J]. 金融研究, 2019(3):21.
  • 金智, 张立光, 辛清泉. 高铁开通与公司IPO[J]. 会计研究, 2021(4):14.
  • 汪琼, 李栋栋, 王克敏. 营商"硬环境"与公司现金持有:基于市场竞争和投资机会的研究[J]. 会计研究, 2020(4):12.
  • 卞元超, 吴利华, 白俊红. 高铁开通是否促进了区域创新?[J]. 金融研究, 2019(6):18.


二、原始数据

  • 中国行政区划明细表,Ex
    cel


  • 中国高铁线路开通数据表,截止2021.10.14,Excel


三、主要建模思路

  • 构建城市名查询函数


def Cityidentification(querydict,name):
#利用查询字典,将一些县或者城市的小地名归一化为城市名
    for i in querydict.keys():
        if name in i:
            name = querydict[i]
            break #结束本层循环
    return name
  • 各线路站点名称清洗、归一化
data['station'] = data['沿途主要车站'].apply(lambda x:[(i if len(i)<3 else (i if i[-1not in ['东','南','西','北'else i[:-1])) for i in x.split('、')])
data['station'] = data['station'].apply(lambda x: [Cityidentification(citydict,i) for i in x] )
def cleancity(lst):
    citylist = list(set(citydict.values()))
    return [i for i in lst if i in citylist]

data['station'] = data['station'].apply(cleancity)
  • 构建站点站点边列表:节点from,节点to,边数weight
def getedgelist(data): #data为列沿线车站列
    #获取城市-城市节点联系
    linklist = []
    for i in data:
        if len(i) > 1:
            for j in range(len(i)-1):
                linklist.append([i[j],i[j+1]])
                linklist.sort(reverse=False)
    link  = [i for i in linklist  if len(set(i)) > 1]

    #筛选城市间连接
    edges = []
    for i in link:
        if i not in edges:
            edges.append(i)
    #计算城市间连接数量
    edgelists = []
    for i in edges:
        n = link.count(i)
        lst = i
        lst.append(n)
        edgelists.append(lst)
    return pd.DataFrame(edgelists,columns = ['from','to','weight'])
  • 网络指标计算
G = nx.from_pandas_edgelist(df,'from','to',edge_attr = 'weight')
#所有结果放在数据框
def getresult(G,year): #G网络图,year年份
    #获取需要的指标
    degree = nx.degree_centrality(G)

    output = pd.DataFrame(columns = ['city','degree'])
    
    #转为DataFrame
    output['city'] = G.nodes()
    output['degree'] = [i for i in degree.values()]
    output.reset_index(inplace =True)
    output = output[['city','degree']]
    output['year'] = year
    return output
    
getresult(G,2021)


【声明】内容源于网络
0
0
数据皮皮侠
社科数据综合服务中心,立志服务百千万社科学者
内容 2137
粉丝 0
数据皮皮侠 社科数据综合服务中心,立志服务百千万社科学者
总阅读615
粉丝0
内容2.1k