将列表附加为 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
我使用 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