处理可变数量的列Dataframe - Python

时间:2017-04-18 17:41:37

标签: python pandas dataframe xlw

我正在尝试使用pandas将列表列表写入excel表 该列表如下:

List_of Lists = [ [1,2,3,4],
                  [5,6,7,8],
                  [9,10,11,12],
                  ........,
                ]
  

主列表中的这些列表数量最多可达1000。   我也想把它们标记为colums1,colomns2,直到colums100为   实例。在同一张床单上。任何熟悉熊猫的人都可以帮助我吗?   因为这对某些人来说真的很容易吗?

1 个答案:

答案 0 :(得分:9)

我相信您可以将列表传递到pd.DataFrame(),您只需获取不存在的值的NaN。

例如:

List_of_Lists = [[1,2,3,4],
                 [5,6,7],
                 [9,10],
                 [11]]
df = pd.DataFrame(List_of_Lists)
print(df)
    0     1    2    3
0   1   2.0  3.0  4.0
1   5   6.0  7.0  NaN
2   9  10.0  NaN  NaN
3  11   NaN  NaN  NaN

然后按照您想要的方式命名,只需使用pandas.DataFrame.add_prefix

df = df.add_prefix('Column')
print(df)
   Column0  Column1  Column2  Column3
0        1      2.0      3.0      4.0
1        5      6.0      7.0      NaN
2        9     10.0      NaN      NaN
3       11      NaN      NaN      NaN

现在我想你可能也希望每个列表都是一个列。在这种情况下,您需要转置List_of_Lists

from itertools import zip_longest

df = pd.DataFrame(list(map(list, zip_longest(*List_of_Lists))))
print(df)
   0    1     2     3
0  1  5.0   9.0  11.0
1  2  6.0  10.0   NaN
2  3  7.0   NaN   NaN
3  4  NaN   NaN   NaN