有没有一种简单的方法可以选择pandas / Python中的数据循环或循环?

我想在Python中选择一个数据周期(在这种情况下为pandas,但这是一个灵活且反复出现的问题),这样选定的数据就会回滚到 n 开始的行。我一直遇到这个问题,尽管有许多可行的解决方案,但我对是否有一些我不知道的内置方法感兴趣?

这是一个熊猫DataFrame示例:

import pandas as pd
import numpy as np

df = pd.DataFrame([[0,1],[2,3],[5,6],[7,8]],columns = ['x','y'])

此DataFrame当然看起来像这样:

   x  y
0  0  1
1  2  3
2  5  6
3  7  8

我发现一个不错的解决方案是创建一个索引数组:

n = 1     #how far through the start of the dataframe to select
select = np.concatenate((range(len(df)),range(n)))

select的输出为:

array([0,1,2,3,0])

如果我df.x[select],我会得到想要的东西:

0    0
1    2
2    5
3    7
0    0
Name: x,dtype: int64

NumPy,pandas或Python的任何其他模块中是否有某些功能可以允许这种循环选择数据?像df.x[0:+1]这样的东西会以类似于df.x[0:-1]的方式工作而不是当前如何工作?还是通过将np.arange()np.concatenate()结合使用来实现我使np.tile工作的方式的NumPy方法?正如我提到的那样,我一直遇到这个问题,对于像Python这样方便的语言,它肯定是应该存在或应该存在的功能。我是否想念或忘记某事?

编辑以澄清请求:

avloss提出的一种建议方法是使用 @Then("^my profile information is retrieved with success") public void validateProfileInformation() { assertThat(..).isEqualTo(..); assertThat(..).isEqualTo(..); assertThat(..).isEqualTo(..); assertThat(..).isEqualTo(..); assertThat(..).isEqualTo(..); assertThat(..).isEqualTo(..); if (this){ x = y; } } ,这是我正在寻找的适当程度的简单性和可概括性,但这对于我正在使用的应用程序来说太过分了。在这些情况下,您必须关闭循环数据循环以进行绘图或计算(例如,如果使用有限差分法匹配闭合曲线的起点和终点的斜率)。在这些情况下,您只需要重复序列中的第一个 n 个数据点(其中 n 通常在1到3之间),即可结束计算或绘制周期

iCMS 回答:有没有一种简单的方法可以选择pandas / Python中的数据循环或循环?

这并不是您所要的,但是np.tile非常接近: https://numpy.org/doc/stable/reference/generated/numpy.tile.html

或者,如果要通过索引执行此操作,则可以使用mod division

np.arange(5) % 4 == array([0,1,2,3,0])
本文链接:https://www.f2er.com/1943728.html

大家都在问