将列表附加为 Pandas DataFrame Python 中的列

Append lists as columns in Pandas DataFrame Python

我使用 BeautifulSoup 提取了一些 html,并创建了一个函数来仅获取有用的信息。我打算 运行 这个函数用于多个关键字,并将它们放在一个数据框中。但是,我无法将所有列表都放入 pandas DataFrame。

示例:

words = ['header', 'title', 'number']

以下代码让我列出了所有 headers、标题和编号,并且长度都相同。

def create_list(x):
    column = []
    BRKlist = BRK.find_all(x)
    for n in BRKlist:
        drop_beginning = r'<'+x+'>'
        drop_end = r'</'+x+'>'
        no_beginning = re.sub(drop_beginning, '', str(n))
        final = re.sub(drop_end, '', str(no_beginning))
        column.append(final)
    print(column)

此代码输出:

['header1', 'header2', 'header3']
['title1', 'title2', 'title3']
['number1', 'number2', 'number3']

我正在寻找一些东西来获得 1 个数据框,它给我一个如下所示的数据框:

header title number
header1 title1 number1
header2 title2 number2
header3 title3 number3

获取列表没问题,但是当我创建一个空数据框时:

df = pd.DataFrame({x: []})

并尝试追加列,我收到以下错误:

TypeError:无法散列的类型:'list'

有什么方法可以避免这种情况,或者有什么 other/easier 方法来“追加列”吗?

如果你想构建一个只有三列的数据框,最简单的方法可能是:

 import pandas as pd 
 A= [['header1', 'header2', 'header3'],
 ['title1', 'title2', 'title3'],
 ['number1', 'number2', 'number3']]
df= pd.DataFrame()
df['header']= [A[0][i] for i in range(3)]
df['title']= [A[1][i] for i in range(3)]
df['number']= [A[2][0] for i in range(3)]
df