从两个列表创建一个 Pandas 数据框:第 1 列是第一个列表,第 2 列是第二个列表,它是一个嵌套列表

Create a Pandas Dataframe from two lists: column 1 is first list, column 2 is second list which is a nested list

我正在尝试使用两个不同的列表来创建一个 Pandas 数据框。第一个列表是第一列,第二个列表是另一列。第二个列表是嵌套的,我希望第一列重复第二列中嵌套项中的值。

例如两个列表:

list1 = ['first', 'second', 'third']

list2 = [['a', 'b', 'c', 'd'], ['e', 'f'], ['g']]

会return输出

    column1 column2
0   first   b
1   first   c
2   first   d
3   second  e
4   second  f
5   third   g

我试过使用 dict(zip(list1, list2) 然后使用 pd.from_dict() 但它没有产生我需要的结果。

有人有什么建议吗?

尝试 zip 然后 explode:

df = pd.DataFrame(list(zip(list1,list2)), columns=[1,2]).explode(2).reset_index(drop=True).add_prefix('column')

df:

    column1 column2
0   first   a
1   first   b
2   first   c
3   first   d
4   second  e
5   second  f
6   third   g
>>list1
['first', 'second', 'third']
>>list2
[['a', 'b', 'c', 'd'], ['e', 'f'], ['g']]

您可以尝试这样的操作: 首先使用这些列表创建数据框,然后 Transpose 数据框,最后使用 explode 方法。

>>df = pd.DataFrame([list1, list2], index=['column1', 'column2']).T.explode('column2')
>>df
  column1 column2
0   first       a
1   first       b
2   first       c
3   first       d
4  second       e
5  second       f
6   third       g