通过分组将列表的rowbind元素转换为pandas数据框

时间:2017-10-10 11:24:03

标签: python pandas

我想知道实现以下内容的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友好的方式实现这一目标?

1 个答案:

答案 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