以date为index拿每天应该有交易所数据的ETF

#操练点:
##某列含有特殊字符串的整体替换
##条件过滤:筛出不含有某字符串的行
##字符串格式日期变日期
##居然耗时很久在那里想一下子取多个column怎么搞?df[['high','low']]


###jupyter notebook
import datetime
import rqdatac
from rqdatac import *
import accounts ##自己创建,用来存放用户名密码服务器和端口的文件
import csv
import pandas as pd
###
rqdatac.__version__  #凡是1.0.0.a开头的都是rqdata2.0中的版本
###
df_origin = pd.read_csv("etf_sorted.csv")
df_origin.head()
###
df_origin=df_origin[~df_origin['listed_date'].str.contains('2999')]  #将包含有2999的字符串日期的行干掉
df_origin.head()
###
df_origin["listed_date"] = pd.to_datetime(df_origin["listed_date"])  #某列的字符串格式变日期格式
df_origin.head()  
###
df_origin.loc[df_origin['de_listed_date'].str.contains('0000'),'de_listed_date'] = '2019/4/18' #将制定列,de_listed_date的含有某特殊字符串的单元格统一替换成一个日期
df_origin.head()
###
df_origin["de_listed_date"] = pd.to_datetime(df_origin["de_listed_date"])  #某列的字符串格式变日期格式
df_origin.head()  
###
#earliest date and latest date
earliest_date = df_origin['listed_date'].min()
latest_date = df_origin['de_listed_date'].max()
###
#拿A股市场trading date
list_trading_date = get_trading_dates("2005-02-23","2019-01-31")
df = pd.DataFrame()
df['Date'] = list_trading_date
df['ETF_list'] = ''
df.set_index('Date',inplace=True)
###
for index, row in df.iterrows():  
    df_in=df_origin[(df_origin.listed_date <= index) & (df_origin.de_listed_date >= index)] 
    row['ETF_list'] = list(df_in['order_book_id'])

###
df.to_csv('date_index_etf.csv')

etf_sorted.csv:

date_index_etf:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

取啥都被占用

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

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

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

打赏作者

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

抵扣说明:

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

余额充值