学习python pandas 之初步了解
2018-11-30 本文已影响0人
waterchinap
import必要的模块
首先要把需要的模块导入。
还需要按tushare的要求配置好token.
# 按文档的要求导入token
import pandas as pd
import matplotlib.pyplot as plt
import numpy.random as np
import sys
import tushare as ts
import os
plt.style.use('ggplot')
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
%matplotlib inline
# 获取pro_api
ts.set_token('ff1c72d52ac8c2554ba6ada1137610364ff28d781')
pro = ts.pro_api()
# 获取数据,以上市公司基本数据为例
sb = pro.stock_basic()
# 测试一下数据导入成功
sb.describe()
sb.dtypes
ts_code object
symbol object
name object
area object
industry object
market object
list_date object
dtype: object
统计每个省的上市公司数量,并且排序
完成这个任务只需要一条命令。
#figsize参数用来解决图的大小比例问题。
#value_counts方法可以把一个系列统计计数并按降序排列。
byarea = sb.area.value_counts()
byarea.plot(kind='barh', figsize=(10,15), title='listed company by area')
![](https://img.haomeiwen.com/i2616645/33b8fafa3a8ba663.png)
可以看出来,沿海地区省份上市公司数量较多。少数民族地区上市公司就很少。
统计每个行业的上市公司数目
统计结果居然是软件服务业数量很多,有必要分析一下各板块的上市公司数量。
byindustry = sb.industry.value_counts()
byindustry.plot(kind='barh', figsize=(10,25), title='listed company by industry')
![](https://img.haomeiwen.com/i2616645/e6d2fc5841bef73d.png)
## 统计每个板块的上市公司数量
bymarket = sb.market.value_counts()
bymarket.plot(kind='pie', figsize=(10,10), title='listed company by market')
![](https://img.haomeiwen.com/i2616645/f1aee7cccdd4e44e.png)
统计每年的上市公司数目,并且按年份排列
由于数据导入时,每个公司的上市日期都是object类型,需要将其先转换成为datetime类型。
#make the list_date colume into a dt object
sb.list_date = pd.to_datetime(sb.list_date)
# 创建一个新列,名字为year,数据从list_date中利用dt.year属性来取。
sb['year'] = sb.list_date.dt.year
# sort_indext()把数据按照index排列,而不是默认的按降序来排列。
byyear = sb.year.value_counts().sort_index()
byyear.plot(kind='barh', figsize=(10,15), title='Listed Number Per Year')
![](https://img.haomeiwen.com/i2616645/65023be1f09df722.png)
可以看出来,2017年真的是厉害啊,怪不得发那么多钱,但没有明显的通货膨胀。应该说,一般大规模上市之后,市场要低迷一阵子。