python dataframe类型转换后存入mysql

上文中《tushare之前复权》提到,从tushare得到复权日K线数据,而返回值是dataframe类型的。现在需要将dataframe类型转换成数组,逐个存入数据库。

dataframe类型,使用values方法,返回数组类型;然后,for循环逐行遍历数组,一行就对于mysql的一条记录,关键部分代码如下:

import tushare as ts   
         
            pro = ts.pro_api()
            
            try:
                #返回dataframe结构:ts_code/trade_date/open/high/low/close/pre_close/change/pct_chg/vol/amount
                #df = pro.daily(ts_code=code, start_date=startDay, end_date=endDay)

                #qfq,前复权; hfq,后复权
                #返回dataframe结构:ts_code/trade_date/open/high/low/close/pre_close/change/pct_chg/vol/amount
                df = ts.pro_bar(ts_code=code, pro_api=pro, adj='qfq', start_date=startDay,end_date=endDay,retry_count=2)
                #print(df)
                if df is None or len(df) == 0:
                    print('pro_bar error!!!!!!!!!!!!!!!\n')
                    continue
            except Exception as e:
                print('tushare pro_bar error. daily. code=',code)

            #使用values可以查看DataFrame里的数据值,返回的是一个数组
            arrayAllInfo = df.values

            #倒序遍历
            for arrayOne in reversed(arrayAllInfo):
                # 列: ts_code trade_day open high low close 昨收价 涨跌额 涨跌幅 总手 成交额(千元)
                # 索引:    0    1         2    3    4    5    6      7      8      9    10
                #print(arrayOne[0],"--",arrayOne[1],"--", arrayOne[2],"--",arrayOne[5],"--",arrayOne[7],"--",arrayOne[8])
                #前复权
                self.db.add_kdata(arrayOne[0],arrayOne[1], arrayOne[2], arrayOne[5], arrayOne[3], arrayOne[4], arrayOne[9], arrayOne[8], arrayOne[10])

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值