Python 如何组合多个列表并创建数据帧

Python 如何组合多个列表并创建数据帧,python,list,dataframe,Python,List,Dataframe,我的列表包含如下内容: col1 col2 col3 NaN ['a' 'b' 5] NaN NaN ['c' 'd' 2] NaN 我不明白,如何将这几个列表合并到一个列表中并排除空列表。最后,我需要得到包含3列的数据框。您可以这样做- from functools import reduce nested_list = [[], ['a','b',5],['c', 'd', 2], []] merged_list = reduce((

我的列表包含如下内容:

col1    col2           col3
NaN     ['a' 'b' 5]    NaN
NaN     ['c' 'd' 2]    NaN


我不明白,如何将这几个列表合并到一个列表中并排除空列表。最后,我需要得到包含3列的数据框。

您可以这样做-

from functools import reduce
nested_list = [[], ['a','b',5],['c', 'd', 2], []]
merged_list = reduce((lambda x, y:x+y), nested_list)
此解决方案适用于单层向下类型嵌套列表(
[[a,b,c],[x,y,z]]


如果你能提供你想要合并的列表类型,我可以提供一个解决方案。现在,我假设它只是一个单层嵌套列表。

假设所需的输出如下所示:

col1    col2           col3
NaN     ['a' 'b' 5]    NaN
NaN     ['c' 'd' 2]    NaN
目前,您手头有以下清单:

>>>a_list
   [[], [['a' 'b' 5], ['c' 'd' 2]], []]
然后,您可以执行以下操作来创建
数据帧

>>>import pandas as pd
>>>import numpy as np
>>>df = pd.DataFrame(columns=['col1','col2','col3'])
>>>a_list = [[], [['a' 'b' 5], ['c' 'd' 2]], []]
>>>for i in range(len(df.columns.tolist())):
...    try:
...        df[df.columns[i]] = a_list[i]
...    except:
...        df[df.columns[i]] = np.nan
>>>df
  col1       col2 col3
0  NaN  [a, b, 5]  NaN
1  NaN  [c, d, 2]  NaN

我不明白你在问什么。您的输入是两个列表吗?您希望您的输出是什么?