1 获取北向资金历史数据:沪股通和深股通

一 功能介绍

功能:获取沪股通、深股通历史数据、合并数据

数据来源:同花顺

https://eq.10jqka.com.cn/hgt/data/method/historyConnectData/type/hs/page/{}/

编程语言:Python

数据处理工具:Pandas

输出结果文件格式:CSV

二 关键代码

import requests
import pandas as pd
import time

#沪股通&深股通
def download_hgt_sgt_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)
    #保存到CSV文件中
    hgt_df.to_csv("沪股通历史数据.csv", index=False, encoding="utf-8")
    sgt_df.to_csv("深股通历史数据.csv", index=False, encoding="utf-8")
    # 合并数据
    #how="right"表示右连接
    print(hgt_df)
    print(hgt_df[["交易日期"]].to_string())
    sgt_df = pd.merge(left=sgt_df, right=hgt_df[["交易日期"]], how="right")
    sgt_df.sort_values("交易日期", inplace=True)
    #'ffill' 就是将缺失值按照前面一个值进行填充
    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)
    #使用drop参数来避免将旧索引添加为列
    df.reset_index(drop=True, inplace=True)
    df.to_csv("陆股通历史数据.csv", index=False, encoding="utf-8")


if __name__ == '__main__':
    download_hgt_sgt_history_data()

输出结果 

 

资料参考

https://blog.csdn.net/lildkdkdkjf/article/details/128846897

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HelloCode5110

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值