从两个列表创建一个 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
我正在尝试使用两个不同的列表来创建一个 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