Python 如何按索引对列表列进行切片
我有一个熊猫数据框,如下所示:Python 如何按索引对列表列进行切片,python,pandas,Python,Pandas,我有一个熊猫数据框,如下所示: df = pd.DataFrame({'A': [[1,2,3],[1,3,5],[4,84,68]]},index=[0,1,0]) 我想要的是: 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, d
df = pd.DataFrame({'A': [[1,2,3],[1,3,5],[4,84,68]]},index=[0,1,0])
我想要的是:
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]]
然而,当我尝试使用应用lambda
时,我感到不知所措……并且无法获得预期的输出
到目前为止,我已经尝试:
df[['A']].apply(lambda x : x[(x.index):(x.index+2)])
你能帮我一下吗,谢谢。[1,3]这一个应该是[3,5]:)花了我足够长的时间(:这很有意义……至少在这个数据上你的方法更快。df[[a']]。apply(lambda x:x.a[(x.name):(x.name+2)],1)
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]