熊猫:从字典列表创建一个数据框,其中所有值都是numpy数组?

时间:2018-08-25 17:13:41

标签: python pandas numpy

我有一个字典列表,所有值都是np数组。

看起来像(有更多列,但这是一个很好的表示)

[
    {'begin_bal': np.arange(100), 'prin': np.arange(100)},
    {'begin_bal': np.arange(50), 'prin': np.arange(50)},
    {'begin_bal': np.arange(360), 'prin': np.arange(260)},
]

我想创建一个如下所示的数据框:

begin_bal  prin
1          1
2          2
...        ...
99         99
100        100
1          1
2          2
...        ...
49         49
50         50
1          1
2          2
...        ...
359        359
360        360

每个字典的每个np数组的大小都相同。

2 个答案:

答案 0 :(得分:3)

使用pd.concat

import numpy as np
import pandas as pd

datas = [
    {'begin_bal': np.arange(100), 'prin': np.arange(100)},
    {'begin_bal': np.arange(50), 'prin': np.arange(50)},
    {'begin_bal': np.arange(360), 'prin': np.arange(360)},
]

pd.concat(pd.DataFrame(data) for data in datas)

答案 1 :(得分:1)

您可以

d1=pd.DataFrame(l)
pd.DataFrame({'begin_bal':np.concatenate(d1['begin_bal'].values),'prin':np.concatenate(d1['prin'].values)})