900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 量化交易系列【2】Pandas数据筛选及处理相关操作

量化交易系列【2】Pandas数据筛选及处理相关操作

时间:2018-09-03 04:06:57

相关推荐

量化交易系列【2】Pandas数据筛选及处理相关操作

量化交易系列【2】Pandas数据筛选及处理相关操作

筛选数据处理缺失值删除空值dropna补全缺失值fillna 排序函数合并操作去除重复数据

示例中使用的‘000001.XSHE.csv’文件,已上传至csdn资源中,可直接下载

import pandas as pd

# 读取CSV文件df = pd.read_csv('./000001.XSHE.csv')df = df[:5] # 取前5行数据df

df['code'] = '000001.XSHE' # 添加股票代码列

筛选数据

# 筛选指定股票代码数据# 选取某一只股票df[df['code']=='000001.XSHE']# 选取多只股票,用isin后面接列表df[df['code'].isin(['000001.XSHE','000002.XSHE'])]

# 筛选收盘价大于9的数据df[df['close'] >= 9.0]

# 筛选日期在/1/5与/1/7之间的数据df['date'] = pd.to_datetime(df['date']) #将字符串的日期转换为日期类型df[(df.date>='-01-05') & (df.date<='-01-07')]

处理缺失值

删除空值dropna

# how='any'表示只要有一个空值该行就删掉,how='all'所有列全为空值才删掉df.dropna(how='any') df.dropna(subset=['涨跌幅','MACD死叉’],how='all') # 表示 '涨跌幅','MACD死叉’这两个值均为空就删除改行

补全缺失值fillna

# 将缺失值给固定值,下面是将所有缺失值补位0df.fillna(value='0') # 通过其他列的值补充该列的缺失值,下面示例:用收盘价来补充'MACD金叉死叉'空值df['MACD金叉死叉'].fillna(value=df['收盘价'], inplace=True)# 向上寻找最近的一个非空值来补充该位置forward filldf.fillna(method='ffill')# 向下寻找最近的一个非空值来补充该位置backward filldf.fillna(method='bfill')# 判断缺失值df[df['涨跌幅'].notnull()] #找出'涨跌幅'不为null的数据df[df['涨跌幅'].isnull()] #找出'涨跌幅'为null的数据

排序函数

# 重置索引,新的index为0,1,2,3...df.reset_index(inplace=True) # 按照某一列进行排序, by指按照什么进行排序df.sort_values(by=['交易日期'],ascending=True) ## 按照多列进行排序df.sort_values(by=['股票名称','交易日期'], ascending=[True, True]) #

合并操作

df1 = df.iloc[0:2]df1

df2 = df.iloc[3:5]df2

# 将df1,df2上下拼接,ignore_index=True,表示去除原有的Index,重新用0,1,2.....代替df3 = df1.append(df2,ignore_index=True)df3

去除重复数据

df3.append(df2)

# 去除['close','open']列相同的数据,如果不写subset,表示两行所有数据均相同才会去除# keep参数表示保留哪一行的数据:last表示最后一行,first表示第一行df3.drop_duplicates(subset=['close','open'],keep='last',inplace=True)df3

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。