中国城市资本流动问题探索

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

作业要求
1、查看全国城际控股型投资关系

要求:
① 通过“data.xlsx”导出csv后,直接通过gephi看全国投资情况,有什么发现?
② 分别筛选出“同城投资”、“跨城投资”的TOP20,比较一下两类投资的数据分布
** 按照2013-2016年的汇总数据来计算
** 分开比较2013-2016四个年度的数据
** 需要绘制柱状图来辅助分析,这里用matplotlib即可

在这里插入图片描述

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
import os
os.chdir('C:\\Users\\Administrator\\Desktop\\项目12中国城市资本流动问题探索')

df = pd.read_excel('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']

#汇总同城投资的数据
tc_sum = data_tc.groupby(['投资方所在城市','融资方所在城市']).sum()
tc_sum = tc_sum.sort_values(by='投资企业对数',ascending=False)
del tc_sum['年份']

#汇总跨城投资的数据
kc_sum = data_kc.groupby(['投资方所在城市','融资方所在城市']).sum()
kc_sum = kc_sum.sort_values(by='投资企业对数',ascending=False)
del kc_sum['年份']

#绘制柱状图辅助分析
tc_sum.iloc[:20].plot(kind='bar',grid=True,color='blue',figsize=(10,4),alpha=0.8)
kc_sum.iloc[:20].plot(kind='bar',grid=True,color='green',figsize=(10,4),alpha=0.8)

在这里插入图片描述
在这里插入图片描述

分开比较2013-2016四个年度的数据

#分开比较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['融资方所在城市']
    return(tc_year.iloc[:20],kc_year.iloc[:20])
    
fig,axes = plt.subplots(4,2,figsize=(12,15))
plt.subplots_adjust(wspace=0.2,hspace=1.2)
f1(2013)[0]['投资企业对数'].plot(kind='bar',grid=True,color='blue',
  alpha=0.8,ax=axes[0,0],title='同城投资-2013年',ylim=[0,40000])
f1(2013)[1]['投资企业对数'].plot(kind='bar',grid=True,color='green',
  alpha=0.8,ax=axes[0,1],title='跨城投资-2013年',ylim=[0,3000])

f1(2014)[0]['投资企业对数'].plot(kind='bar',grid=True,color='blue',
  alpha=0.8,ax=axes[1,0],title='同城投资-2014年',ylim=[0,40000])
f1(2014)[1]['投资企业对数'].plot(kind='bar',grid=True,color='green',
  alpha=0.8,ax=axes[1,1],title='跨城投资-2014年',ylim=[0,3000])

f1(2015)[0]['投资企业对数'].plot(kind='bar',grid=True,color='blue',
  alpha=0.8,ax=axes[2,0],title='同城投资-2015年',ylim=[0,40000])
f1(2015)[1]['投资企业对数'].plot(kind='bar',grid=True,color='green',
  alpha=0.8,ax=axes[2,1],title='跨城投资-2015年',ylim=[0,3000])

f1(2016)[0]['投资企业对数'].plot(kind='bar',grid=True,color='blue',
  alpha=0.8,ax=axes[3,0],title='同城投资-2016年',ylim=[0,40000])
f1(2016)[1]['投资企业对数'].plot(kind='bar',grid=True,color='green',
  alpha=0.8,ax=axes[3,1],title='跨城投资-2016年',ylim=[0,3000])

在这里插入图片描述
在这里插入图片描述

过程总结:
1.原始数据中,同一年中的投资数据会重复记录,所以需要将数据以'投资方所在城市','融资方所在城市','年份'这三个字段做一个分组汇总
2.用df.plot(kind = 'bar')来绘制图表,这里index为城市名即可
3.绘制子图时要设置好参数:
wspace是子图之间的垂直间距,hspace是子图的上下间距

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

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

要求:
① 结合“中国城市代码对照表.xlsx”数据,给2013-2016年“跨城投资”的汇总数据添加城市的经纬度
② 通过2013-2016年“跨城投资”的汇总数据,在gephi中绘制“城市关系图”
** 这里gephi中“点标签”只显示投资笔数TOP20的城市
③ 通过2013-2016年“跨城投资”的汇总数据,在echarts中绘制“全国跨城市资本流动OD图”
** 这里通过qgis的插件,做点转线
** 通过echart制作最后的资本
** 这里line的value为投资笔数

#读取“中国城市代码对照表.xlsx”数据
city = pd.read_excel('中国城市代码对照表.xlsx')
#重新设置kc_sum数据的index
kc_sum.reset_index(inplace=True)
#结合“中国行政代码对照表.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']

#导出gephi制图所要的边文件
gephi_edges = kc_data[['投资方所在城市','融资方所在城市','投资企业对数']]
gephi_edges.columns = ['source','target','weight']
gephi_edges['weight'] = (gephi_edges['weight']-gephi_edges['weight'].min()) / (gephi_edges['weight'].max()-gephi_edges['weight'].min())
gephi_edges.to_csv('gephi_edges.csv',index=False)

#导出gephi制图所要的点文件
citys = list(set(gephi_edges['source'].tolist()+gephi_edges['target'].tolist()))
gephi_nodes = pd.DataFrame({'Id':citys})
top_node = gephi_edges.sort_values(by='weight',ascending=False)
top_node20 = top_node['source'].drop_duplicates().iloc[:20]
df_top_node20 = pd.DataFrame({'Id':top_node20,'Label':top_node20})
gephi_nodes = pd.merge(gephi_nodes,df_top_node20,on='Id',how='left')
gephi_nodes.to_csv('gephi_nodes.csv',index=False)

在这里插入图片描述
在这里插入图片描述

过程说明:
1.gephi制图所需要导出的csv参考课程资料里的模板:
边文件 → edge_model.csv;
点文件 → node_model.csv(主要注意列名)
   ** 其中边数据的value需要做标准化处理 → 0-1之间
   ** gephi中单独显示某些城市的点标签方法 → 导入数据后,设置label,然后用label来显示标签,其中label只标注top20的数据
2.qgis中需要安装插件“LinePlotter”来转线
3.使用LinePlotter(注意qgis2.12版本才有该插件)得到line.shp文件时,需要为line的属性表添加value字段为投资笔数,因为要保证后续echart制图时数据文件的可执行性
4.shapefile转geojson时:注意shapefile保持wgs84地理坐标系

结论3
① 通过“全国跨城市资本流动OD图”可以明显看到
** 三个亮点密集的区域:长三角城市群、珠三角城市群、北京-天津城市群
** 这三个城市群与成都-重庆西部城市群构成了一个钻石形状
** 在钻石之外,仅有星星点点的东北和西部的几个亮点游离;
** 而这颗大钻石内的资本流动,占据了全国资本流动的90%以上!!
② 通过“城市关系图”可以发现:
** 城际投资的全国城市拓扑关系 → 以“北上深”为中心的城市网络
另外还得思考作为西部偏远的拉萨为什么会在’北上深’中心网络的附近,其原因是什么,还可以看到杭州与嘉兴也备受投资者的青睐,到底谁会更胜一筹

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

要求:
① 近四年对外控股型投资笔数最多的10个城市是哪些?
② 近四年吸引对外控股型投资笔数最多的10个城市又是哪些?
③ 从2013年到2016年,资本流动两大阵营的变化趋势:“北上深阵营”、“本地化阵营”
** “北上深阵营”:最大的外来投资方为北上深之一的城市
** “本地化阵营”:这里简化计算,将非“北上深阵营”都划入“本地化阵营”
** 该问题从“北上深阵营”历年来城市数量占比来看
** 可以qgis辅助绘制城市空间分布

#近四年对外控股型投资笔数最多的10个城市
kc_sum = kc_sum.reset_index()
result1 = kc_sum[['投资方所在城市','投资企业对数']].groupby('投资方所在城市').sum()
result1 = result1.sort_values(by='投资企业对数',ascending=False).iloc[:10]
    
#近四年吸引对外控股型投资笔数最多的10个城市
result2 = kc_sum[['融资方所在城市','投资企业对数']].groupby('融资方所在城市').sum()       
result2 = result2.sort_values(by='投资企业对数',ascending=False).iloc[:10]
        
result1.plot(kind='bar',grid=True,figsize=(10,4),color='red',alpha=0.8)
result2.plot(kind='bar',grid=True,figsize=(10,4),color='black',alpha=0.8)        
#创建函数       
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 = data_dm[['城市名称','经度','纬度']]
    #添加融资方所在城市的经纬度
    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)

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',
       stacked=True,
       grid=True,
       colormap='Reds_r',
       rot=0,
       figsize=(10,4),
       ylim=[0,400])

f2(2013)[0].to_csv('year2013.csv',index=False)
f2(2014)[0].to_csv('year2014.csv',index=False)
f2(2015)[0].to_csv('year2015.csv',index=False)
f2(2016)[0].to_csv('year2016.csv',index=False)
print('finished!')
过程说明:
① 资本流动两大阵营在计算中,主要以“融资方所在城市”为对象研究
② 资本流动两大阵营变化趋势计算中,可以构建函数,以年份为参数
③ 如何得到某年融资城市对应的最大的外来投资城市?
   ** 首先按照“融资方所在城市”做groupby分组,计算“投资企业对数”的max,得到一个Series
   ** Series通过reset_index转化为dataframe
   ** 再通过和源数据merge,找到该融资城市的最大外来投资对应的“投资方城市”,这里merge中的参数 on = ['融资方所在城市','投资企业对数']
④ 为了在qgis中制图,需要给数据添加经纬度信息,这里只需要添加“融资方所在城市”的经纬度
⑤ 为了qgis更好识别阵营类型,数据“阵营”字段用数字表示:0代表“本地化阵营”,1代表“北上深阵营”
⑥ qgis中制图时,既不属于“本地化阵营”又不属于“北上深阵营”的城市,颜色填充和“本地化阵营”一样即可(已分类-->阵营-最大值-->颜色填充)

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值