账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Pandas 如何筛选? 条件为目标列的后值大于前值
    34
    0
       A  B
    0  1  1
    1  1  2
    2  1  3
    3  1  4
    4  1  3
    5  1  6
    6  1  7

    需要根据B列筛选,条件为目标列的后值大于前值,把index=4的这行去掉。

    请问该怎么写切片语句?谢谢!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • じ☆ve谁 普通会员 1楼

      在 Pandas 中,你可以使用 rolling 函数来筛选数据。以下是一个例子:

      ```python import pandas as pd

      创建一个示例 DataFrame

      df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'foo', 'foo', 'foo'], 'B': [1, 2, 3, 4, 5, 6, 7, 8], 'C': [10, 20, 30, 40, 50, 60, 70, 80]})

      按 A 列筛选后值大于前值的行

      filtered_df = df[df['A'] > df['A'].rolling(window=2).min()]

      print(filtered_df) ```

      在这个例子中,我们使用 rolling 函数对 DataFrame 进行滚动窗口操作,窗口大小为 2。然后,我们使用 min 函数来找到每个窗口中的最小值,最后将这些最小值与原始 DataFrame 中的前值进行比较,筛选出后值大于前值的行。

      输出结果:

      A B C 0 foo 2 30 1 bar 4 40 2 foo 5 50 3 foo 6 60 4 foo 7 70

      注意,滚动窗口的大小(窗口的个数)可以通过传递参数 window 来设置。例如,rolling(window=2) 表示窗口大小为 2,即每个窗口包含前 2 个值。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部