DataFrame操作

DataFrame操作

一、读取CSV并排序

import pandas as pd 
def getData(sname):
    #获取股票数据,返回的数据类型是pandas.core.frame.DataFrame
    #有中文,需注意
    data=pd.read_csv(sname+'.csv',encoding='gb2312')
    #进行重名操作
    data.rename(columns={'日期':'Date','开盘价':'Open','最高价':'High','最低价':'Low','收盘价':'Close','成交量':'Volume'},inplace=True)#把中文改英文
    #选取需要的列;当然也可以通过drop(columns=[xxxxmxxx])对不必要的列进行删除
    data=data[['Date','Open','High','Low','Close','Volume']]
    #将日期列进行格式环境 转成datetime类型
    data['Date']=pd.to_datetime(data['Date'])
    #将日期设置为索引
    data.set_index(['Date'],inplace=True)
    #日期升序
    data=data.sort_index()
————————————————
版权声明:本文为CSDN博主「寅恪光潜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41896770/article/details/120634612

二、绘图plot的用法

DataFrame.plot(x=None, y=None, kind=‘line’, ax=None, subplots=False,
sharex=None, sharey=False, layout=None,figsize=None,
use_index=True, title=None, grid=None, legend=True,
style=None, logx=False, logy=False, loglog=False,
xticks=None, yticks=None, xlim=None, ylim=None, rot=None,
xerr=None,secondary_y=False, sort_columns=False, **kwds)

##删除掉不关心的列
stock_daily_df = stock_daily_df.drop(columns=['open', 'high','low','volume'])
##收盘价的折线图
stock_daily_df['close'].plot(grid=True, figsize=(12,10))

三、滑动窗口统计和Series

#计算ma5和ma20 实现方式:n天滚动窗口取均值mean
stock_daily_df['5d'] = pd.Series.rolling(stock_daily_df['close'],window=5).mean()
stock_daily_df['20d'] = pd.Series.rolling(stock_daily_df['close'],window=20).mean()

四、判断赋予新值和统计值分布

  • where类似hive if 函数;判断并重新赋予一个新值;
  • value_counts用于计算每个值出现的次数
#计算买卖信号
stock_daily_df['5d-20d'] = stock_daily_df['5d'] - stock_daily_df['20d']

stock_daily_df['signal'] = np.where(stock_daily_df['5d-20d'] > 0, 1, 0)
stock_daily_df['signal'] = np.where(stock_daily_df['5d-20d'] < 0, -1, stock_daily_df['signal'])

stock_daily_df['signal'].plot(lw=1.5)

##count看看信号的值次数
stock_daily_df['signal'].value_counts()

五、排序和取TopN

  • sort_values函数对某列进行升序或降序排序
  • head函数取topN
import akshare as ak 

stock_hsgt_board_rank_em_df = ak.stock_hsgt_board_rank_em(symbol="北向资金增持行业板块排行", indicator="今日")
desc_top_10 = stock_hsgt_board_rank_em_df.sort_values(by='最新涨跌幅',ascending=False).head(10)
asc_top_10 =  stock_hsgt_board_rank_em_df.sort_values(by='最新涨跌幅',ascending=True).head(10)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值