【发布时间】:2021-11-23 12:52:58
【问题描述】:
我的目标是根据交易量减少两只股票/股票代码(或底部十分位)(针对每个 0 级指数日期的交易量最低的 2 只股票/股票代码(第 1 级)删除整行)
DataFrame 已经按体积排序,因此对于每个日期,它都按体积升序排序。所以 DataFrame 可能看起来像(已缩短为 5 个股票而不是 20 个) : 数据框示例: '''
Date Ticker col1 col2 col3 Volume
2020-01-01 stock1 - - - 5
stock2 - - - 10
stock3 - - - 20
stock4 - - - 40
stock5 - - - 43
2020-02-01 stock3 - - - 7
stock5 - - - 14
stock1 - - - 33
stock2 - - - 50
stock4 - - - 52
对于 0 级索引日期“2020-01-01”,我想删除 stock1 和 stock2,但对于下一级索引日期“2020-02-01”,我想删除新的最低 2分别是 stock3 和 stock5。
注意:真正的 DataFrame 会更大,不止 5 只股票,而且还会持续很多个月
到目前为止,我已经尝试使用qcut 添加一个等分列(因为我的真正目标是为 20 只股票做此操作),它会自动给我按数量计算的最低两个值,但我无法为每个 0 级日期复制(仅在一个日期成功,不知道如何为每个 0 级日期复制)。
我也尝试了nsmallest 和nlargest,但由于这是一个DataFrame,所以遇到了错误。
您对我如何完成这项任务有任何建议吗?我觉得好像我走在正确的道路上,但我缺少一些基本的东西。任何见解都值得赞赏!
【问题讨论】:
标签: python pandas dataframe multi-index