zoukankan      html  css  js  c++  java
  • 中国城市资本流动问题探索

    数据来源:

    数据:全国2013-2016所有企业间的投融资信息数据

    1、查看全国城际控股型投资关系

    ① 通过“data.xlsx”导出csv后,直接通过gephi看全国投资情况,有什么发现?
    ② 分别筛选出“同城投资”、“跨城投资”的TOP20,比较一下两类投资的数据分布
    ** 按照2013-2016年的汇总数据来计算
    ** 分开比较2013-2016四个年度的数据
    ** 需要绘制柱状图来辅助分析,这里用matplotlib即可
    ===>>>
    ① 原始数据中,同一年中的投资数据会重复记录,所以需要将数据以'投资方所在城市','融资方所在城市','年份'这三个字段做一个分组汇总
    ② 用df.plot(kind = 'bar')来绘制图表,这里index为城市名即可

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    % matplotlib inline
    
    import warnings
    warnings.filterwarnings('ignore') 
    # 不发出警告
    
    from bokeh.io import output_notebook
    output_notebook()
    # 导入notebook绘图模块
    
    from bokeh.plotting import figure,show
    from bokeh.models import ColumnDataSource,HoverTool
    # 导入图表绘制、图标展示模块
    # 导入ColumnDataSource模块
    # (1)数据读取,筛选出“同城投资”、“跨城投资”数据
    
    df = pd.read_excel('C:/Users/Hjx/Desktop/项目12中国城市资本流动问题探索/data.xlsx')
    # 数据读取
    
    df = df.groupby(['投资方所在城市','融资方所在城市','年份']).sum().reset_index()
    # 汇总数据
    
    data_tc = df[df['投资方所在城市'] == df['融资方所在城市']]
    data_tc = data_tc.sort_values(by = '投资企业对数',ascending = False).reset_index()
    del data_tc['index']
    # 筛选出“同城投资”数据
    
    data_kc = df[df['投资方所在城市'] != df['融资方所在城市']]
    data_kc = data_kc.sort_values(by = '投资企业对数',ascending = False).reset_index()
    del data_kc['index']
    # 筛选出“跨城投资”数据
    #(2) 比较一下“同城投资”、“跨城投资”TOP20的数据分布
    # 按照2013-2017年的汇总数据来计算,比较
    
    tc_sum = data_tc.groupby(['投资方所在城市','融资方所在城市']).sum().sort_values(by = '投资企业对数',ascending = False)
    del tc_sum['年份']
    # 汇总“同城投资”数据
    
    kc_sum = data_kc.groupby(['投资方所在城市','融资方所在城市']).sum().sort_values(by = '投资企业对数',ascending = False)
    del kc_sum['年份']
    # 汇总“跨城投资”数据
    # 查看“同城投资”
    tc_sum.iloc[:20]
    # 查看“跨城投资”
    kc_sum.iloc[:20]
    tc_sum.iloc[:20].plot(kind = 'bar',grid = True, figsize = (10,4),color = 'blue',alpha = 0.7)
    kc_sum.iloc[:20].plot(kind = 'bar',grid = True, figsize = (10,4),color = 'green',alpha = 0.7)

     结论1
    ① 从2013-2016的汇总数据来看,投资比数“同城投资”>“跨城投资”
    ② “同城投资”中领头的城市为北上广深及部分二线强城市,其中 深圳>北京>上海>>其他城市
    ③ “跨城投资”中领头的城市仍为北上广深(相互投资),或者北上广深向周边城市投资(城市群)

    # 比较一下“同城投资”、“跨城投资”TOP20的数据分布
    # (3)分开比较2013-2016四个年度的数据
    
    def f1(year):
        tc_year = data_tc[data_tc['年份'] == year].sort_values(by = '投资企业对数',ascending = False)
        kc_year = data_kc[data_kc['年份'] == year].sort_values(by = '投资企业对数',ascending = False)
        tc_year.index = tc_year['投资方所在城市']
        kc_year.index = kc_year['投资方所在城市'] + '-' + kc_year['融资方所在城市']
        # 筛选该年的“同城投资”、“跨城投资”
        #print('%i年同城投资TOP20:' % year)
        #print(tc_year.iloc[:20])
        #print('-----')
        #print('%i年跨城投资TOP20:' % year)
        #print(kc_year.iloc[:20])
        #print('-----')
        return(tc_year.iloc[:20],kc_year.iloc[:20])
        # 输出该年“同城投资”、“跨城投资”TOP20 
    # 创建函数
    # 绘制图表
    
    fig,axes = plt.subplots(4,2,figsize=(12,15))
    plt.subplots_adjust(wspace = 0.1,hspace=0.5)
    f1(2013)[0]['投资企业对数'].plot(kind = 'bar',grid = True, color = 'blue',alpha = 0.7,ax = axes[0,0],title = '同城投资 - 2013年',ylim = [0,40000])
    f1(2013)[1]['投资企业对数'].plot(kind = 'bar',grid = True, color = 'green',alpha = 0.7,ax = axes[0,1],title = '跨城投资 - 2013年',ylim = [0,3000])
    # 2013年
    f1(2014)[0]['投资企业对数'].plot(kind = 'bar',grid = True, color = 'blue',alpha = 0.7,ax = axes[1,0],title = '同城投资 - 2014年',ylim = [0,40000])
    f1(2014)[1]['投资企业对数'].plot(kind = 'bar',grid = True, color = 'green',alpha = 0.7,ax = axes[1,1],title = '跨城投资 - 2014年',ylim = [0,3000])
    # 2014年
    f1(2015)[0]['投资企业对数'].plot(kind = 'bar',grid = True, color = 'blue',alpha = 0.7,ax = axes[2,0],title = '同城投资 - 2015年',ylim = [0,40000])
    f1(2015)[1]['投资企业对数'].plot(kind = 'bar',grid = True, color = 'green',alpha = 0.7,ax = axes[2,1],title = '跨城投资 - 2015年',ylim = [0,3000])
    # 2015年
    f1(2016)[0]['投资企业对数'].plot(kind = 'bar',grid = True, color = 'blue',alpha = 0.7,ax = axes[3,0],title = '同城投资 - 2016年',ylim = [0,40000])
    f1(2016)[1]['投资企业对数'].plot(kind = 'bar',grid = True, color = 'green',alpha = 0.7,ax = axes[3,1],title = '跨城投资 - 2016年',ylim = [0,3000])
    # 2016年

    结论2
     ① 分开2013-2016年来看,每年“同城投资”、“跨城投资”均呈上升趋势
     ② “同城投资”中,头部城市仍为北上深(没有广州),且随着时间推移,越来越拉开和其他城市的“同城投资”差距(注意这个结论)
    ③ “跨城投资”中,投资关系较强的城市为“北京-上海” > “北京-深圳” > “上海-深圳” → 一线城市之间投资力度较大

     ** 接下来详细挖掘一下“全国跨城市资本流动情况”

    2、2013-2016年全国跨城市资本流动情况

    ① 结合“中国城市代码对照表.xlsx”数据,给2013-2016年“跨城投资”的汇总数据添加城市的经纬度
    ② 通过2013-2016年“跨城投资”的汇总数据,在gephi中绘制“城市关系图”
    ** 这里gephi中“点标签”只显示投资笔数TOP20的城市
    ③ 通过2013-2016年“跨城投资”的汇总数据,在echarts中绘制“全国跨城市资本流动OD图”
    ** 这里通过qgis的插件,做点转线
    ** 通过echart制作最后的资本
    ** 这里line的value为投资笔数
    ====>>>
    ① gephi制图所需要导出的csv参考课程资料里的模板:边文件 → edge_model.csv;点文件 → node_model.csv(主要注意列名)
    ** 其中边数据的value需要做标准化处理 → 0-1之间
    ** gephi中单独显示某些城市的点标签方法 → 导入数据后,设置label,然后用label来显示标签,其中label只标注top20的数据
    ② qgis中需要安装插件“LinePlotter”来转线
    ③ shapefile转geojson时:注意shapefile保持wgs84地理坐标系

    # 读取“中国城市代码对照表.xlsx”数据及重新设置kc_sum数据的index
    city = pd.read_excel(r'E:Python数据分析项目12资本中国城市代码对照表.xlsx')
    kc_sum.reset_index(inplace = True) 
    #(1)添加经纬度信息
    #
    结合“中国行政代码对照表.xlsx”数据,给2013-2016年“跨城投资”的汇总数据添加城市的经纬度 kc_data = pd.merge(kc_sum,city[['城市名称','经度','纬度']],left_on ='投资方所在城市',right_on = '城市名称') kc_data = pd.merge(kc_data,city[['城市名称','经度','纬度']],left_on ='融资方所在城市',right_on = '城市名称') kc_data = kc_data[['投资方所在城市','融资方所在城市','投资企业对数','经度_x','纬度_x','经度_y','纬度_y']] kc_data.columns = ['投资方所在城市','融资方所在城市','投资企业对数','lng_tz','lat_tz','lng_rz','lat_rz'] kc_data.head()

    # (2)导出gephi制图数据
    
    gephi_edge = kc_data[['投资方所在城市','融资方所在城市','投资企业对数']]
    gephi_edge.columns = ['source','target','weight']
    gephi_edge['weight'] = (gephi_edge['weight'] - gephi_edge['weight'].min())/(gephi_edge['weight'].max() - gephi_edge['weight'].min())
    gephi_edge.to_csv('C:/Users/Hjx/Desktop/gephi_edge.csv',index = False)
    # 导出边数据
    
    citys = list(set(gephi_edge['source'].tolist()+gephi_edge['target'].tolist()))
    gephi_nodes = pd.DataFrame({'Id':citys})  
    # 筛选出所有的城市节点,并生成dataframe
    top_node = gephi_edge.sort_values(by = 'weight',ascending = False)
    top_node20 = top_node['source'].drop_duplicates().iloc[:20]
    top_node20_df = pd.DataFrame({'Id':top_node20, 'Label':top_node20})
    # 筛选出投资对数较大,且不重复的前20个城市,并生成dataframe
    gephi_nodes = pd.merge(gephi_nodes,top_node20_df,on = 'Id',how = 'left')
    # 合并,给点数据增加label字段
    gephi_nodes.to_csv('C:/Users/Hjx/Desktop/gephi_nodes.csv',index = False)
    # 导出点数据
    
    print('finished!')

    在软件gephi 里边进行分析

    加载边数据,加载节点

    最后得到城市关系图

    #(3) 导出qgis制图数据
    
    kc_data.to_csv('C:/Users/Hjx/Desktop/qgisdata.csv',index = False)
    print('finished!')

    使用QGIS软件,做数据过程的整理

    加载全国市界,设置灰色的背景;

    LinePlotter,加载数据(4,5,6,7),添加value字段

    导出; 然后转换为json文件。

    最后HTML页面展示:

     

    结论3 
    ① 通过“全国跨城市资本流动OD图”可以明显看到
     ** 三个亮点密集的区域:长三角城市群、珠三角城市群、北京-天津城市群
     ** 这三个城市群与成都-重庆西部城市群构成了一个钻石形状
     ** 在钻石之外,仅有星星点点的东北和西部的几个亮点游离;
     ** 而这颗大钻石内的资本流动,占据了全国资本流动的90%以上!!
    ② 通过“城市关系图”可以发现:
     ** 城际投资的全国城市拓扑关系 → 以“北上深”为中心的城市网络

    3、深挖跨城市资本流动:钱从哪里来,到哪里去?

    ① 近四年对外控股型投资笔数最多的10个城市是哪些?
    ② 近四年吸引对外控股型投资笔数最多的10个城市又是哪些?
    ③ 从2013年到2016年,资本流动两大阵营的变化趋势:“北上深阵营”、“本地化阵营”
    ** “北上深阵营”:最大的外来投资方为北上深之一的城市
    ** “本地化阵营”:这里简化计算,将非“北上深阵营”都划入“本地化阵营”
    ** 该问题从“北上深阵营”历年来城市数量占比来看
    ** 可以qgis辅助绘制城市空间分布
    ===>>>
    ① 资本流动两大阵营在计算中,主要以“融资方所在城市”为对象研究
    ② 资本流动两大阵营变化趋势计算中,可以构建函数,以年份为参数
    ③ 如何得到某年融资城市对应的最大的外来投资城市?
    ** 首先按照“融资方所在城市”做groupby分组,计算“投资企业对数”的max,得到一个Series
    ** Series通过reset_index转化为dataframe
    ** 再通过和源数据merge,找到该融资城市的最大外来投资对应的“投资方城市”,这里merge中的参数 on = ['融资方所在城市','投资企业对数']
    ④ 为了在qgis中制图,需要给数据添加经纬度信息,这里只需要添加“融资方所在城市”的经纬度
    ⑤ 为了qgis更好识别阵营类型,数据“阵营”字段用数字表示:0代表“本地化阵营”,1代表“北上深阵营”
    ⑥ qgis中制图时,既不属于“本地化阵营”又不属于“北上深阵营”的城市,颜色填充和“本地化阵营”一样即可

    # (1)近四年对外控股型投资笔数最多的10个城市是哪些?
    result1 = kc_sum[['投资方所在城市','投资企业对数']].groupby('投资方所在城市').sum().sort_values(by = '投资企业对数',ascending = False).iloc[:10]
    # 近四年吸引对外控股型投资笔数最多的10个城市又是哪些?
    result2 = kc_sum[['融资方所在城市','投资企业对数']].groupby('融资方所在城市').sum().sort_values(by = '投资企业对数',ascending = False).iloc[:10]
    result1.plot(kind = 'bar',grid = True, figsize = (10,4),color = 'red',alpha = 0.7, rot = 0)
    result2.plot(kind = 'bar',grid = True, figsize = (10,4),color = 'black',alpha = 0.7, rot = 0)

    结论4
    ① 通过“对外控股型投资笔数-城市排名TOP10”可以看出
     ** 北京、上海、深圳毫无悬念地包揽了前三名,且在量级上远远超过了其他城市 → 北上深在一定程度上控制着全国的资金流向和经济命脉
     ** 杭州 → 第四名,表现最为亮眼的省会城市,崛起的新一线城市
    ** 广州 → 第五名,江湖人称“北上广”三兄弟的广州,在对外投资的控制力上已经与另两位兄弟渐行渐远了
     ** 前10名中有5名都是长三角区域的城市,可以看到长三角地区资本的活跃程度
    ② 通过“吸引对外控股型投资笔数-城市排名TOP10”可以看出
     ** 吸引外来控股型投资笔数最多的前三名的仍然是北上深
    ** 在外来资本流入城市的榜单中,嘉兴挤掉了南京,进入前十名 → 相比资本对外输出,嘉兴是一个更受资本青睐的城

    # (2)从2013年到2016年,资本流动两大阵营的变化趋势:“北上深阵营”、“本地化阵营”
    # ** “北上深阵营”:最大的外来投资方为北上深之一的城市
    # ** “本地化阵营”:这里简化计算,将非“北上深阵营”都划入“本地化阵营”
    
    def f2(year):
        kc_datai = data_kc[data_kc['年份']==year]
        x = kc_datai[['融资方所在城市','投资企业对数']].groupby('融资方所在城市').max().reset_index()
        city_tz_max = pd.merge(kc_datai,x,on = ['融资方所在城市','投资企业对数'],how = 'right')
        # 数据整理 → 得到融资城市的最大外来投资对应的“投资方城市”
        city_tz_max['阵营'] = 0
        city_tz_max['阵营'][(city_tz_max['投资方所在城市'] == '北京') |
                            (city_tz_max['投资方所在城市'] == '上海') | 
                            (city_tz_max['投资方所在城市'] == '深圳') ] = 1
        # 划分“北上深阵营”、“本地化阵营”
        city_tz_max = pd.merge(city_tz_max,city[['城市名称','经度','纬度']],left_on ='融资方所在城市',right_on = '城市名称')
        city_tz_max = city_tz_max[['投资方所在城市','融资方所在城市','投资企业对数','阵营','经度','纬度']] 
        # 添加融资方所在城市经纬度
        dici = {}
        dici['北上深阵营城市数据量'] = city_tz_max['阵营'].value_counts().iloc[1]
        dici['本地化阵营城市数据量'] = city_tz_max['阵营'].value_counts().iloc[0]
        # 计算“北上深阵营”、“本地化阵营”的城市数量,并放入一个字典
        return(city_tz_max,dici)
    # 创建函数

    #(3)北上深阵营城市占比的变化趋势 zy_year = pd.DataFrame([f2(2013)[1],f2(2014)[1],f2(2015)[1],f2(2016)[1]],index = ['2013年','2014年','2015年','2016年']) zy_year['北上深阵营占比'] = zy_year['北上深阵营城市数据量']/(zy_year['北上深阵营城市数据量'] + zy_year['本地化阵营城市数据量']) zy_year[['北上深阵营城市数据量','本地化阵营城市数据量']].plot(kind='bar',grid = True,colormap='Blues_r',rot = 0, stacked=True,figsize = (10,4),ylim = [0,400]) # 绘制堆叠图查看占比变化趋势 zy_year

    # (4)数据导出csv,qgis绘图
    f2(2013)[0].to_csv('C:/Users/Hjx/Desktop/year2013.csv',index = False)
    f2(2014)[0].to_csv('C:/Users/Hjx/Desktop/year2014.csv',index = False)
    f2(2015)[0].to_csv('C:/Users/Hjx/Desktop/year2015.csv',index = False)
    f2(2016)[0].to_csv('C:/Users/Hjx/Desktop/year2016.csv',index = False)
    print('finished!')

    使用QGIS进行分析

    计算多边形内的点数目

    按照阵营最大值分类

    结论5 
    “北上深阵营”高歌猛进,“本地化阵营”节节败退
     ① 2013年,“北上深阵营”的地盘仅仅局限于国内少数相对发达地区,以及各省省会城市
     ② 随着时间的推移,“北上深阵营”的势力范围逐步扩大,东北和内蒙的大部分地区纳入了“北上深阵营”
     ③ 越来越多的中小型城市也逐渐成为“北上深阵营”的一员
     ④ 2014年,90%的控股型城际投资去向了99个城市,而到了2017年,90%的城际投资只去向了60个城市
     → “北上深”越来越强大的资本力量,正在逐步地穿透中国经济的底层——三四线城市

  • 相关阅读:
    Ubuntu 14.04 下 Chromium 出现 未安装Adobe Flash Player 问题解决
    UESTC 764 失落的圣诞节 --RMQ/线段树
    TopCoder SRM 639 Div.2 500 AliceGameEasy --乱搞
    HDU 4578 Transformation --线段树,好题
    linux下发布操作
    Memcached 安装部署手册
    Java中集中常见的数据结构(转自CSDN,整理编写)
    oracle数据库2种临时表的使用
    weblogic服务部署
    springboot入门学习(一)
  • 原文地址:https://www.cnblogs.com/shengyang17/p/9966330.html
Copyright © 2011-2022 走看看