如何按索引切片列表列

时间:2017-09-06 04:02:32

标签: python pandas

我有一个pandas DataFrame如下:

pd.DataFrame({'A': [[1,2],[3,5],[4,84]] },index=[0,1,0])
Out[690]: 
         A
0   [1, 2]
1   [3, 5]
0  [4, 84]

我想得到什么:

[r[i:i+2] for i, r in zip(df.index, df.A)]

Out[695]: [[1, 2], [3, 5], [4, 84]]

截至目前的方法:

apply

然而,当我尝试使用lambda df[['A']].apply(lambda x : x[(x.index):(x.index+2)]) 时,我感到迷茫.....并且无法获得预期的输出

到目前为止,我已经尝试过:

SELECT columnName FROM mytable

你能帮助我吗,谢谢你。

1 个答案:

答案 0 :(得分:3)

a = np.array(df.A.values.tolist())
i = np.arange(len(df))[:, None]
j = np.arange(2) + df.index.values[:, None]

pd.DataFrame(dict(A=a[i, j].tolist()), df.index)

         A
0   [1, 2]
1   [3, 5]
0  [4, 84]