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]对不起。我的问题不仅仅是奇数或偶数。一般来说,如何根据另一列对记录进行分组。简单。谢谢。你知道如何有条件地滚动吗?例如,在上面的例子中,基于索引列滚动它。奇数行分开偶数行分开?简单。谢谢。你知道如何有条件地滚动吗?例如,在上面的例子中,基于索引列滚动它。奇数行分开,偶数行分开?