使用Pandas清理DataFrame的NaN并转字典时触发AttributeError错误
解决Pandas read_html调用fillna报错的问题
错误原因
pd.read_html()解析网页表格后,返回的是DataFrame对象的列表,而非单个DataFrame。直接对整个列表调用fillna()方法,会触发AttributeError: 'list' object has no attribute 'fillna'——因为列表没有这个Pandas DataFrame专属的方法。
修正后的代码
import pandas as pd url = 'https://elderscrolls.fandom.com/wiki/Factions_(Skyrim)' # 读取网页表格,得到DataFrame列表 df_list = pd.read_html(url) # 取出目标DataFrame(这里取第一个表格),替换NaN为0 target_df = df_list[0].fillna(0) # 转成records格式的字典列表 skyrim_data = target_df.to_dict(orient='records')
关键说明
- 先通过索引(比如
[0])从返回的列表中提取你需要的单个DataFrame - 仅对提取出的DataFrame调用
fillna()方法,而非整个列表 - 如果网页中有多个表格,可根据实际需求调整索引值,或遍历列表批量处理所有表格
内容的提问来源于stack exchange,提问作者robothead
相关产品推荐
相关产品推荐

