jerryli 2021-11-02 08:56 采纳率: 100%
浏览 71
已结题

dataframe 如何筛选相同两项的某一列中的值等于另一列中的值?

有下面这样一个表格:
symbol pre_close upper_limit
0 SHSE.600683 4.12 4.53
1 SHSE.600683 4.53 4.98
2 SZSE.002385 4.53 4.98
3 SZSE.002385 4.98 5.48
4 SZSE.002676 3.14 3.45
5 SZSE.002676 3.14 3.45
6 SZSE.002972 18.21 20.03
7 SZSE.002972 20.03 22.03

symbol每两个一组,要筛选出每一组内第二行的pre_close等于第一行的upper_limit的所有行,实际意义是,先获取到了每个股票昨天和前天的收盘价以及涨停价,现在要选出昨天涨停的所有股票,这个用python怎么写最高效简单呢?

  • 写回答

4条回答 默认 最新

  • 江天暮雪丨 2021-11-02 09:35
    关注

    尝试了一下,算不上高效,勉强实现筛选

    def handle(data: pd.DataFrame):
        index_list = data.index
        # 第二行的 pre_close
        pre_close = data.loc[index_list[1], 'pre_close']
        # 第一行的 upper_limit
        upper_limit = data.loc[index_list[0], 'upper_limit']
        if pre_close == upper_limit:
            return data
    df.groupby('symbol').apply(handle)
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 11月10日
  • 已采纳回答 11月2日
  • 创建了问题 11月2日