从两个列表创建一个Pandas Dataframe:列1是第一个列表,列2是第二个列表,这是一个嵌套列表



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

相关内容

  • 没有找到相关文章

最新更新