You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Beautiful Soup处理后的字符串结果转为DataFrame行数据

解决方案

问题根源

你之前的代码把所有条目拼接成了单个大字符串,如果循环时直接重复添加这个字符串,自然会得到n次重复的结果。正确的做法是先把每个条目单独提取为列表元素,再转为DataFrame。

修改后的代码

import pandas as pd
from bs4 import BeautifulSoup

# 假设你已经完成网页解析,得到soup对象
nfl = soup.find_all('li', "player")

# 直接生成包含每个条目内容的列表
player_entries = [
    f"{ind}. {span.get_text(strip=True).rstrip('+')}" 
    for ind, span in enumerate(nfl, 1)
]

# 将列表转为DataFrame,自定义列名
df = pd.DataFrame(player_entries, columns=['球员信息'])
print(df)

分步实现方式(适合调试)

如果习惯逐行操作,可以拆成循环逐个处理:

import pandas as pd
from bs4 import BeautifulSoup

nfl = soup.find_all('li', "player")
player_entries = []

for ind, span in enumerate(nfl, 1):
    # 清洗单条数据的文本
    clean_text = span.get_text(strip=True).rstrip('+')
    # 拼接序号与文本,加入列表
    player_entries.append(f"{ind}. {clean_text}")

# 转换为DataFrame
df = pd.DataFrame(player_entries, columns=['球员信息'])

这样每个条目都会作为DataFrame的独立一行,不会出现重复问题。

内容的提问来源于stack exchange,提问作者Weierstraß Ramirez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 00:45:53