3、 数据导出
为了演示数据的导出。这里我们引入一个新的第三方库tushare,通过这个库,我们可以轻松的获取金融相关数据,如股票数据。
以下为tushare库的介绍。 其官方文档地址为:http://tushare.org/index.html TuShare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。
考虑到Python pandas包在金融量化分析中体现出的优势,TuShare返回的绝大部数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。
当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以通过TuShare的数据存储功能,将数据全部保存到本地后进行分析。
我们先获取2017年,第二季度全部股票的业绩报告,盈利能力,营运能力数据,然后分别用不同方式保存它们。
!pip install wheel !pip install lxml !pip install tushare !pip install beautifulsoup4 !pip install requests !pip install pandas import tushare as ts # 业绩报告 report = ts.get_report_data(2017,2) # 盈利能力 profit = ts.get_profit_data(2017,2) # 营运能力 operation = ts.get_operation_data(2017,2)
3.1 导出到本地文件
3.1.1 导出为文本文件
report.to_csv('./report.csv',index = False,encoding = 'utf-8') profit.to_csv('./profit.csv',index = False,encoding = 'utf-8') operation.to_csv('./operation.csv',index = False,encoding = 'utf-8')
3.1.2 导出为Excel文件
# 可以分别导出到不同的Excel工作簿; !pip install openpyxl report.to_excel('./report.xlsx',index =False) profit.to_excel('./profit.xlsx',index = False) operation.to_excel('./operation.xlsx',index =False)
在pandas里面提供了大量的数据载入和数据导出的方法
#先打开一个Excel工作簿,然后分别写入三个表格,然后关掉Excel工作簿 writer = pd.ExcelWriter('./finance.xlsx') report.to_excel(writer,sheet_name='report',index = False) profit.to_excel(writer,sheet_name='profit',index = False) operation.to_excel(writer,sheet_name='operation',index = False) # 文件写入完毕后关掉Excel工作簿 writer.close()
3.1.3 导出为Json文件
# 导出为json文件 report.to_json('./report.json')
3.1.4 导出为hdf文件
# 导出为hdf文件 !pip install tables from warnings import filterwarnings filterwarnings('ignore') report.to_hdf('./report.hdf','report') # ImportError: HDFStore requires PyTables, "No module named 'tables'" problem importing
3.2 将数据存储到数据库
import sqlite3 # 创建连接 sqlite_con = sqlite3.connect('./pandas.db') # 写入数据 report.to_sql('report',sqlite_con,if_exists ='replace',index =False) profit.to_sql('profit',sqlite_con,if_exists ='replace',index =False) operation.to_sql('operation',sqlite_con,if_exists ='replace',index =False)
3.3 数据导入
3.3.1 从本地文件
# 从文本文件 # 推荐使用相对路径 pd.read_csv('./report.csv').head(3)
#从Excel文件 # 如果不是被迫选择Excel文件格式,一般不推荐使用Excel文件格式,速度很慢 !pip install xlrd pd.read_excel('./report.xlsx').head()
4 、分组计算与汇总
如果说,数据的导入和导出是数据的前提,那么数据的处理分析那么就是数据的精华
按照不同的字段进行分组聚合统计,count()计数,sum()求和
按照不同的字段分别分组聚合,然后进行统计分析,输出需要显示的指标变量的值
注意这里的describe()用于描述性分析,直接可以使用该方法
5、数据融合
构造两个临时数据表,用于我们后面的操作
直接进行连接
Pandas高级操作补充
对于pandas的高级操作,无非是进行数据增删改查,也就是分组聚合,排序处理等,在处理数也可以使用其他的工具,例如:MySQL数据库的分析,也还是不错的!!!