python获取北向资金的历史数据

运行python程序一键对北向资金净流向数据形成文档;

源码如下: 

import requests
import pandas as pd
import time

def download_history_data():
    hgt_list = []
    sgt_list = []
    i = 1
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36"
    }
    while True:
        url = "https://eq.10jqka.com.cn/hgt/data/method/historyConnectData/type/hs/page/{}/".format(i)
        response = requests.get(url, headers=headers)
        data = response.json()
        if len(data["hgt"]) == 0:
            break
        hgt_list += data["hgt"]
        sgt_list += data["sgt"]
        print("{}完成!!".format(i))
        i += 1
        time.sleep(1)
    hgt_df = pd.DataFrame(hgt_list)
    sgt_df = pd.DataFrame(sgt_list)
    rename_columns = {
        "date": "交易日期", "inflow": "当日港资净流入", "net_purchase": "当日净买入额",
        "total_inflow": "历史港资累计净流入", "index": "指数收盘价", "index_change": "指数涨跌幅",
        "over": "剩余额度", "buy": "当日买入额度", "sell": "当日卖出额度"
    }
    hgt_df.rename(columns=rename_columns, inplace=True)
    sgt_df.rename(columns=rename_columns, inplace=True)
    hgt_df.sort_values("交易日期", inplace=True)
    sgt_df.sort_values("交易日期", inplace=True)
    hgt_df.to_csv("沪股通历史数据.csv", index=False, encoding="utf-8")
    sgt_df.to_csv("深股通历史数据.csv", index=False, encoding="utf-8")
    # 合并数据
    sgt_df = pd.merge(left=sgt_df, right=hgt_df[["交易日期"]], how="right")
    sgt_df.sort_values("交易日期", inplace=True)
    sgt_df["历史港资累计净流入"].fillna(method="ffill", inplace=True)
    sgt_df.fillna(value=0, inplace=True)
    hgt_df.set_index("交易日期", inplace=True)
    sgt_df.set_index("交易日期", inplace=True)
    df = pd.DataFrame()
    add_columns = ["当日港资净流入", "当日净买入额", "历史港资累计净流入", "剩余额度", "当日买入额度", "当日卖出额度", "total"]
    hgt_df[add_columns] = hgt_df[add_columns].astype("float")
    sgt_df[add_columns] = sgt_df[add_columns].astype("float")
    for column in add_columns:
        df[column] = hgt_df[column] + sgt_df[column]
    df.reset_index(inplace=True)
    df.sort_values(by="交易日期", inplace=True)
    df.reset_index(drop=True, inplace=True)
    df.to_csv("陆股通历史数据.csv", index=False, encoding="utf-8")

if __name__ == '__main__':
    download_history_data()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值