【问题标题】:Create subset dataframes without loop创建没有循环的子集数据帧
【发布时间】:2018-07-17 22:49:37
【问题描述】:

假设我们有 pandas 数据框,df

             Foo       Bar
2018-01-01  0.568658  0.504093
2018-01-02  0.244716  0.422261
2018-01-03 -2.254264 -0.680178
2018-01-04  0.110540 -0.477153
2018-01-05 -1.342594 -0.005422
2018-01-06  1.219136  0.864694
2018-01-07  0.097513 -0.140353

对于df 中的每一行,我想要一个等于接下来 n 行的切片, 在这种情况下,假设 n=2:

2018-01-01  0.568658  0.504093
2018-01-02  0.244716  0.422261

2018-01-02  0.244716  0.422261
2018-01-03 -2.254264 -0.680178

2018-01-03 -2.254264 -0.680178
2018-01-04  0.110540 -0.477153

2018-01-04  0.110540 -0.477153
2018-01-05 -1.342594 -0.005422

等等。这很容易在循环中完成,但是这种操作是否有 pandas 函数?可以组团吗?

谢谢

【问题讨论】:

    标签: python python-2.7 pandas dataframe


    【解决方案1】:

    pd.DataFrame.rolling 函数可以让您生成这样一个移动的窗口切片(称为滚动对象),您可以在其上使用各种函数进行操作。

    在你的情况下,你会使用:

    df.rolling(2)
    

    window functions 下的文档中列出了您可以访问此类滚动对象的函数。

    【讨论】:

    • 我或许可以在滚动功能上使用 apply 吧?好的,现在知道了,谢谢。
    • 是的,apply 是上面提到的功能之一!
    猜你喜欢
    • 2020-05-01
    • 1970-01-01
    • 2015-07-25
    • 2019-01-02
    • 2020-04-03
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    相关资源
    最近更新 更多