对股票数据按照时间排序

用下面方法排序后,date列会消失,后面无法调用
lc=pd.read_csv('sh600012.csv')
lc['date'] = pd.to_datetime(lc['date'])
lc=pd.read_csv('sh600012.csv', index_col='date', parse_dates=True).sort_index()


用下面方法date列不会消失,但是排序后,最左边索引会变成倒序排列,lc[1]依旧是排序前的lc[1]
lc=pd.read_csv('sh600012.csv')
lc['date'] = pd.to_datetime(lc['date'])
lc=lc.sort_values(by=['date'])   #这里要赋值一下,否则排序后依旧没有变化
print lc


使用reset_index()可以完美解决上面问题
detail_df = pd.read_csv(sh600012.csv)
detail_df.date = pd.to_datetime(detail_df.date)
detail_df=detail_df.sort_values(by=['date'])
detail_df=detail_df.reset_index()  #设定一个新的索引列
要从MySQL数据库中的所有股票行情数据中查找连续上涨的股票并按连续上涨天数排序,我们首先需要定义“连续上涨”的含义,这通常意味着股票在一定时间段内的收盘价逐日递增。以下是一个可能的实现步骤: 1. 确定数据模型:假定你有一个股票行情的表格,其中包含股票代码、交易日期和收盘价等字段,例如表名为`stock_trends`,字段有`stock_code`(股票代码)、`trade_date`(交易日期)、`close_price`(收盘价)。 2. 编写SQL查询:使用子查询和窗口函数(如LEAD或LAG)来比较当前行与下一行的收盘价,从而找出连续上涨的股票。然后使用GROUP BY和HAVING子句来聚合数据,并筛选出满足连续上涨天数的股票。最后,使用ORDER BY对结果进行排序。 3. 示例SQL查询: ```sql SELECT stock_code, MIN(trade_date) AS start_date, MAX(trade_date) AS end_date, COUNT(*) AS consecutive_days FROM ( SELECT stock_code, trade_date, close_price, -- 使用LEAD函数比较下一天的价格,这里假设窗口是按日期排序的 LEAD(close_price, 1) OVER(PARTITION BY stock_code ORDER BY trade_date) AS next_day_close FROM stock_trends ) AS subquery WHERE close_price < next_day_close GROUP BY stock_code HAVING COUNT(*) >= 2 -- 这里假设至少连续上涨两天才算连续上涨 ORDER BY consecutive_days DESC, stock_code; ``` 这个查询首先在内部查询中为每行数据添加了下一天的收盘价,然后在外部查询中筛选出收盘价连续递增的股票,并计算连续上涨的天数。最后,结果按照连续上涨天数降序排列,并且同一股票代码股票代码排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值