我尝试使用两个不同的列表来创建Pandas数据框架。第一个列表是第一列,第二个列表是另一列。第二个列表是嵌套的,我希望第一列的值与第二列嵌套项中的值一样多。
例如,两个列表:
list1 = ['first', 'second', 'third']
list2 = [['a', 'b', 'c', 'd'], ['e', 'f'], ['g']]
将返回输出
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()
,但它没有产生我需要的结果。
>>list1
['first', 'second', 'third']
>>list2
[['a', 'b', 'c', 'd'], ['e', 'f'], ['g']]
你可以尝试这样做:首先用这些列表创建数据框,然后对进行转置然后最后使用爆炸方法。
>>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
尝试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