读取数据
import time
date = time.strftime("%Y-%m-%d")
date = date.replace("'", "")
from WindPy import *
import pandas as pd
import numpy as np
from pymongo import MongoClient
w.start()
w.isconnected()
import time
from concurrent.futures import ProcessPoolExecutor,ThreadPoolExecutor, as_completed
import json
连接数据库
host ='xxx.xxx.x.xx'
port='27017'
user='xxxx'
code='utf8utf8'
uri= "mongodb://"+user+":"+code+"@"+host+":"+port+"/"+"?authMechanism=SCRAM-SHA-1"
client=MongoClient(uri)
db = client['CN_Stock']
collection = db['Wind_Close_Price']
获取Wind中A股公司列表
A_list = w.wset("sectorconstituent","date=2019-07-30;sectorid=a001010100000000",usedf=True)
A_list = A_list[1]#取dataframe部分
多线程
df = pd.DataFrame(columns = ['wind_code','close','volume','amt','total_shares'] )
df['wind_code'] = A_list['wind_code']
df_list = A_list.copy()
#定义多线程函数
def applyParallel(dfGrouped, func):
ppe = ThreadPoolExecutor(10)#设置线程池中最多能同时运行的线程数目
futures = []
results = []
for name, group in dfGrouped:
p = ppe.submit(func, group)#提交函数和变量,立即返回
futures.append(p)
for future in as_completed(futures):
r = future.result()
results.append(r)
return pd.concat(results)#合