从两个不同大小的列创建两个列

2024-04-26 05:24:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从两个列表中创建两列

我尝试使用zip来构建数据帧并插入列表,但是较大的列表被切断了

import pandas as pd

list1 = ['new book revealing', 'library for topic modelling']
list2 = ['potentially embarrassing', 'several international', 'daily newspaper'] 
df = pd.DataFrame(list(zip(list1, list2)), columns =['list1', 'list2']) 

我的输出:

                 list1            list2
0   new book revealing            potentially embarrassing
1   library for topic modelling   several international

良好输出:

                 list1            list2
0   new book revealing            potentially embarrassing
1   library for topic modelling   several international 
2                                 daily newspaper

Tags: 列表newfortopiclibraryzipseverallist2
3条回答

一种方法是使用^{}

import itertools
pd.DataFrame(itertools.zip_longest(list1, list2), columns =['list1', 'list2']) 

                        list1                     list2
0           new book revealing  potentially embarrassing
1  library for topic modelling     several international
2                         None           daily newspaper

可以使用^{}和转置:

df = pd.DataFrame.from_records([list1, list2]).T.fillna('')
# df.columns = ['list1', 'list2']

                    0                         1
0           new book revealing  potentially embarrassing
1  library for topic modelling     several international
2                                      daily newspaper

你可以建立一个水平测向,然后转置

pd.DataFrame([list1, list2], index=['list1', 'list2']).T.fillna('')

    list1                       list2
0   new book revealing          potentially embarrassing
1   library for topic modelling several international
2                               daily newspaper

相关问题 更多 >