我想知道实现以下内容的pythonic方法是什么: 给出列表清单:
l = [[1, 2],[3, 4],[5, 6],[7, 8]]
我想创建一个pandas数据框列表,其中第一个pandas数据帧是l
中前两个元素的行绑定,第二个是最后两个元素的行绑定:
>>> df1 = pd.DataFrame(np.asarray(l[:2]))
>>> df1
0 1
0 1 2
1 3 4
和
>>> df2 = pd.DataFrame(np.asarray(l[2:]))
>>> df2
0 1
0 5 6
1 7 8
在我的问题中,我有一个很长的列表,我知道分组,即列表l
的前k个元素应该被行绑定以形成第一个df。如何以python友好的方式实现这一目标?
答案 0 :(得分:2)
您可以将它们存储在dict
中
In [586]: s = pd.Series(l)
In [587]: k = 2
In [588]: df = {k:pd.DataFrame(g.values.tolist()) for k, g in s.groupby(s.index//k)}
In [589]: df[0]
Out[589]:
0 1
0 1 2
1 3 4
In [590]: df[1]
Out[590]:
0 1
0 5 6
1 7 8