我想遍历一个大列表,其中每个列表索引都是时间序列中的一个时间点。对于列表的每一行,都有一个二维数组,其中包含10个用户ID(0-9)的开始值和结束值,每个值都相同。
然后,我想创建一个新的数据帧,以使我具有行索引(针对每个时间),然后为10个用户ID中的每个用户创建一列,以使它们具有自己的时间序列。我花了很长时间才弄清楚这种数据类型,但这是可复制的示例版本:
list1 = np.transpose(np.array([[1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,10.0],[1.2,2.3,3.4,4.6,5.5,6.6,7.1,8.2,9.0,10.7]]))
list2 = np.transpose(np.array([[1.4,2.6,3.4,4.9,6.5,5.6,8.7,1.8,4.9,10.8],[1.4,2.4,3.5,4.7,6.5,5.6,7.5,8.4,9.3,10.2]]))
list3 = np.transpose(np.array([[4.1,5.2,5.5,6.1,6.5,5.9,7.7,8.8,9.9,10.0],[1.1,2.2,3.3,4.8,5.5,5.7,7.7,8.6,9.0,10.0]]))
list_of_arrays = [list1,list2,list3]
输出如下:
start1 end1 start2 end2 start3 end3 ... (etc) ... start10 end10
0 1.1 1.2 2.2 2.3 3.3 3.4 ... 10.0 10.7
1 1.4 1.4 2.6 2.4 3.4 3.5 ... 10.8 10.2
2 4.1 1.1 5.2 2.2 5.5 3.3 ... 10.0 10.0
... (large n rows)
答案 0 :(得分:1)
看起来像一个简单的reshape
pd.DataFrame([arr.reshape(-1) for arr in list_of_arrays])
0 1 2 3 4 5 6 ... 13 14 15 16 17 18 19
0 1.1 1.2 2.2 2.3 3.3 3.4 4.4 ... 7.1 8.8 8.2 9.9 9.0 10.0 10.7
1 1.4 1.4 2.6 2.4 3.4 3.5 4.9 ... 7.5 1.8 8.4 4.9 9.3 10.8 10.2
2 4.1 1.1 5.2 2.2 5.5 3.3 6.1 ... 7.7 8.8 8.6 9.9 9.0 10.0 10.0
然后,您可以根据需要添加列名称。
答案 1 :(得分:1)
带有ravel
的另一个选项:
pd.DataFrame([l.ravel() for l in list_of_arrays])