首页 > 解决方案 > 从数组列表和列表生成数据框?

问题描述

我有以下列表和 numpy 数组列表:

x = [np.array([5.50000002, 6.69999989]),
 np.array([4.83736559, 7.        ]),
 np.array([0.44784402, 1.49999997, 4.18910619]),
 np.array([0.1       , 2.30000004, 3.30995852])]

y = [2, 3, 4, 5]

我想生成以下格式的熊猫数据框:

df = 
x          y
5.50000002 2
6.69999989 2
4.83736559 3
7          3
0.44784402 4
1.49999997 4
4.18910619 4
0.1        5
2.30000004 5
3.30995852 5

当我可以预期 x 和 y 非常大时,最快的方法是什么?

标签: arrayspandaslistdataframenumpy

解决方案


尝试使用concatenaterepeat

pd.DataFrame({'x':np.concatenate(x), 
              'y':np.repeat(y,[len(a) for a in x])})

输出:

          x  y
0  5.500000  2
1  6.700000  2
2  4.837366  3
3  7.000000  3
4  0.447844  4
5  1.500000  4
6  4.189106  4
7  0.100000  5
8  2.300000  5
9  3.309959  5

推荐阅读