数据分析

python金融大数据挖掘与分析(五)——利用pandas库导出

2020-02-03  本文已影响0人  aidanmomo

@[toc]
利用pandas库将日期和评分转为二维数据表格,并写入Excel工作簿

1.汇总舆情数据评分

  1. 获取一段时间的时间序列
    这里可以通过pandas库的date_range()函数生成一个时间范围的时间序列,假设数据库中已经存储有“万科集团”每日的新闻舆情评分数据,我们想要获取从2019年9月1日到2019年12月1日的时间序列,为之后批量从数据库调取评分数据做准备。
import pandas as pd
date_list = pd.date_range('2019-09-01', '2019-12-01')
print(date_list)
在这里插入图片描述

这里可以看到,返回的结果为一个日期格式的时间索引序列,并不是一个常规的列表,所以还需要通过list函数将其转化为列表。


在这里插入图片描述

此时返回的是一个列表,但是里面的元素的数据类型为Timestamp(时间戳)类型,因此这里需要将其进一步转换为"%Y-%m-%d"格式的日期字符串,代码如下:


在这里插入图片描述
  1. 根据时间序列遍历数据库
    db = pymysql.connect(host='localhost', port=3308, user='root', password='',
                         database='spider', charset='utf8')

    # 设定参数
    company = '万科集团'
    date_list = list(pd.date_range('2019-09-01', '2019-12-01'))
    for i in range(len(date_list)):
        date_list[i] = datetime.datetime.strftime(date_list[i], '%Y-%m-%d')
    # print(date_list)

    # 编写SQL语句
    cur = db.cursor()
    sql = 'SELECT * FROM baidu_news WHERE company = %s AND date = %s'

    # 遍历date_list中的日期,获取每天的评分并存储到score_list中
    score_list = {}     #定义字典,用于存储每天的评分
    for i in range(len(date_list)):
        cur.execute(sql, (company, date_list[i]))
        data = cur.fetchall()

        score = 100
        for j in range(len(data)):
            score += data[j][5]
            
        score_list[date_list[i]] = score

    db.commit()
    cur.close()
    db.close()

2. 导出舆情数据评分表格

获取每日舆情数据评分结果之后,首先将其转换成DataFrame类型的二维数据表格。代码如下

data = pd.DataFrame.from_dict(score_list, orient='index', columns=['score'])
在这里插入图片描述
  1. 通过重置索引的方式将行索引转换为列,并将其存入Excel表格中
    data = pd.DataFrame.from_dict(score_list, orient='index', columns=['score'])
    data.index.name = 'date'
    data = data.reset_index()
在这里插入图片描述
data.to_excel('score.xlsx', index=False)
上一篇 下一篇

猜你喜欢

热点阅读