Python 如何在当前行的新列中获取列的前n个值的列表?

Python 如何在当前行的新列中获取列的前n个值的列表?,python,python-3.x,pandas,Python,Python 3.x,Pandas,我的熊猫数据框如下所示: Index Score 1 15.5 2 0.0 3 15.5 4 30.0 5 17.5 我想在下面的新栏中列出前3个分数 Index Score Pre_Scr 1 15 [] 2 0 [15] 3 18 [0,15] 4 30 [18,0,15] 5 17 [30,18,0] 5

我的熊猫数据框如下所示:

Index   Score
1       15.5
2       0.0
3       15.5
4       30.0
5       17.5
我想在下面的新栏中列出前3个分数

Index   Score   Pre_Scr
1       15      []
2       0       [15]
3       18      [0,15]
4       30      [18,0,15]
5       17      [30,18,0]
5       5       [17,30,18]
我试过了

[x.values.tolist() for x in v.rolling(3)]

但这将返回一个包含当前值的列表。如何针对每条记录以上述预期格式获取数据?

如果我正确地获取了变量,您可以这样做:

 [[y for y in x.values.tolist() if y != v_no] for x, v_no in zip(v.rolling(4), v.values) ]
或者可能在非时间数据类型实现时:

 [x.values.tolist() for xin v.rolling(4, closed='left')]

如果我的变量正确,可以这样做:

 [[y for y in x.values.tolist() if y != v_no] for x, v_no in zip(v.rolling(4), v.values) ]
或者可能在非时间数据类型实现时:

 [x.values.tolist() for xin v.rolling(4, closed='left')]

如果只想删除最后一个值,为什么不执行此操作以删除当前值:

[x.values.tolist()[:-1] for x in v.rolling(4)]

如果只想删除最后一个值,为什么不执行此操作以删除当前值:

[x.values.tolist()[:-1] for x in v.rolling(4)]

@斯考夫罗斯,我已经更新了我的问题。它是v中的x,不是xin。抱歉搞混了。我更新了我的。然而,似乎@Shubham Lohiya得到了一个更简单的答案。@scophros谢谢。知道如何有条件地滚动吗?例如,在上面的例子中,基于索引列滚动它。奇数行单独偶数行单独?您可以使用索引-使用两倍长的滚动窗口,然后应用奇数索引:list[::2]或list[1::2]对不起。我的问题不仅仅是奇数或偶数。一般来说,我如何根据另一列对记录进行分组。@scophros,我已经更新了我的问题。它是v中的x,不是xin。抱歉搞混了。我更新了我的。然而,似乎@Shubham Lohiya得到了一个更简单的答案。@scophros谢谢。知道如何有条件地滚动吗?例如,在上面的例子中,基于索引列滚动它。奇数行单独偶数行单独?您可以使用索引-使用两倍长的滚动窗口,然后应用奇数索引:list[::2]或list[1::2]对不起。我的问题不仅仅是奇数或偶数。一般来说,如何根据另一列对记录进行分组。简单。谢谢。你知道如何有条件地滚动吗?例如,在上面的例子中,基于索引列滚动它。奇数行分开偶数行分开?简单。谢谢。你知道如何有条件地滚动吗?例如,在上面的例子中,基于索引列滚动它。奇数行分开,偶数行分开?