1.获取股票数据后的日期排序问题处理。通常我们获取的数据格式是最新日期在最前面,所以我们需要让他换个相反的顺序。以及选出我们需要的列数据。
df=ts.get_hist_data('002412')
df.sort_index(ascending=True,inplace=True)
df=df[['open','high','close','low','p_change','volume']]
2.日期间隔的处理。在我们需要计算某相邻日期的间隔时,首选需要对日期格式进行处理,然后再进行相减就可以了。这里我们先把作为日期的索引列换掉然后转换格式。
df.reset_index(inplace=True)
df['date']=pd.to_datetime(df['date'])
可以看到加上.days 就可以获取到相邻日期的间隔。
有时候我们会需要用到间隔的整数,但是获取整数间隔,这种处理只能单独的取某行。
整列数据会出现报错。那我们便可以让整列数据除以日期数。同时对第一行数据填充0.数据类型转换为整数。
((df['date']-df['date'].shift(1))/pd.Timedelta(1,'D')).fillna(0).astype('int')
这样便可以得到日期的间隔整数了,方便后期的计算。
3.找到特定数据所在的行,以及删除。有些时候,拿到数据,我们希望看一些数据在哪行。通常我们可能用到 isin 函数方法。
df[df['date'].isin(['2020-02-11'])]
可以看到数据的索引列值为4
利用这种方法找到数据 .index便可以得到 索引值。如果是一大堆符合的数据,那么我们先可以用list装起来,后面处理,比如删除掉。
df[df['close']>9].index.tolist()
现在需要删除的话,可以直接用drop函数,把列表值填进去即可。
df.drop(labels=drop_list,inplace=True)
当然,我们还可以利用反选的方法去除掉。结合自己遇到的情况用便可以。
df[~df['间隔'].isin([1])]
今天介绍到这,这几种数据处理在还是比较常用的,大家可以多多练习。