如何使用PrettyTable合并两个Beautiful Soup爬取的表格?
合并两个PrettyTable表格的方法
用Beautiful Soup完成数据爬取后,我得到了两个PrettyTable表格:
x = PrettyTable() x.field_names = ['Titre', 'Price']
y = PrettyTable() y.field_names = ['Description']
当前输出:
x = +-----------------+ | Titre | Price | +-----------------+ | a | abc | | b | xyz | +----------------- y = +-----------------+ | DESCRIPTION | +-----------------+ | abc | | xyz | +-----------------
期望输出:
+-----------------+-----------------+ | Titre | Price | DESCRIPTION | +-----------------+-----------------+ | a | abc | abc | | b | xyz | xyz | +-----------------+-----------------+
请问是否可以将这两个表格合并,得到如下结构的表格z?
z = PrettyTable() z.field_names = ['Titre', 'Price','Description']
当然可以合并,直接创建目标表格并将两行数据对应拼接即可,前提是两个表格的行数一致。示例代码如下:
from prettytable import PrettyTable # 模拟已爬取填充好的x、y表格 x = PrettyTable() x.field_names = ['Titre', 'Price'] x.add_rows([['a', 'abc'], ['b', 'xyz']]) y = PrettyTable() y.field_names = ['Description'] y.add_rows([['abc'], ['xyz']]) # 初始化合并后的表格z z = PrettyTable() z.field_names = ['Titre', 'Price', 'Description'] # 遍历对应行,拼接后添加到z for x_row, y_row in zip(x.rows, y.rows): z.add_row(list(x_row) + list(y_row)) # 打印合并结果 print(z)
运行后就能得到你想要的合并表格。如果x和y的行数不一致,需要先处理数据对齐问题,比如给行数少的表格补空值,或者过滤掉多余的行。
内容的提问来源于stack exchange,提问作者Bruno93600
相关产品推荐
相关产品推荐

