首页 > 解决方案 > 将 3d 列表转换为同一索引上的 pandas 单个数据帧

问题描述

我的列表l有形状np.array(l).shape (100,15,1)它有 100 个数据框,每个 df 有 15 行和 1 列。索引相同,只是列表的每个df中的排序不同。我想解压缩列表 l:

l[0] =             Rank                  l[31] =           Rank
           A1       1                                A5      1
           A2       2                                A1      2
           A3       3                                A8      3
           A4       4.. till 15                      A3      4 .... also till 15

我想要这个 3-d 列表中的单个数据框,l如下所示: df= (15,100)

     0       1      2
A1   1       2      3
A2   2       3      2 
A3   3       6      1
A4   4       4      4
A5   5       8      6 .. till 100 columns and for all 15 indices

基本上,具有所有排名列表的数据框仅显示在同一索引上。

标签: python-3.xpandaslistnumpyiteration

解决方案


使用concatwithaxis=1ignore_index=True默认新列 by range

df = pd.concat(l, axis=1, ignore_index=True)
print (df)
      0    1
A1  1.0  2.0
A2  2.0  NaN
A3  3.0  4.0
A4  4.0  NaN
A5  NaN  1.0
A8  NaN  3.0

推荐阅读