我有一个字典列表,所有值都是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数组的大小都相同。
答案 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)})