#操练点:
##某列含有特殊字符串的整体替换
##条件过滤:筛出不含有某字符串的行
##字符串格式日期变日期
##居然耗时很久在那里想一下子取多个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: