2017-08-03 44 views
-1

我想从列中选择每3个值。选择pandas列中的每个n值

例如:

Input 
    12 
    73 
    56 
    33 
    16 


        output 
        12 
        73 
        56 
        ------ 
        73 
        56 
        33 
        ----- 
        56 
        33 
        16 

我试图通过它来添加一个键列,组,但我的数据帧太大而无法进行分组。这里是我的尝试:

df.groupby('key').agg(lambda x: x.tolist()) 
+0

我不明白你想要的输出。新列中的行数不会比其他行多3倍吗? –

+0

你需要输出与表中的其他数据相关吗?用列表这将是非常容易的。 – asongtoruin

+0

不完全是3倍,但窗口幻灯片数量窗口大小(= 3)。这就是我想要的。 – moreo

回答

0

如果使用列表类型,你可以这样做:

lst = [12,73,56,33,16] 
slide_size=3 
result = [] 

for i in range(0,len(lst)-slide_size+1): 
    result.append(lst[i:i+3]) 

result 

# output : [[12, 73, 56], [73, 56, 33], [56, 33, 16]] 

在此之后,你可以将列表中数据帧