Python Pandas使用pivot_table透视得到异常IP地址结果问题
问题排查与解决步骤
源数据校验
首先执行以下代码确认原始数据字段格式正常:
# 检查Event Label字段是否混入IP内容 print(tasks['Event Label'].sample(20)) # 检查Total Events字段是否为数值类型 print(tasks['Total Events'].dtype)如果
Event Label字段本身包含IP值,透视表行索引会直接继承该内容输出;如果Total Events为字符串类型,sum聚合会执行字符串拼接,最终输出内容会出现非预期的拼接结果(包括IP格式字符串)。简化透视表列索引结构
你当前代码中
values参数传入的是列表格式,生成的透视表会带有两级列索引,第一级为Total Events、第二级为月份,容易出现Jupyter渲染层级错位的问题,修改代码为如下形式简化列结构:# values直接传字符串而非列表,取消一级列索引 p = tasks.pivot_table(index='Event Label', columns='Month', values='Total Events', aggfunc='sum', fill_value=0) # 可选:执行后重置索引,避免隐式索引干扰展示 p = p.reset_index()排除变量覆盖问题
Jupyter Lab支持单元格无序执行,可能存在之前的代码把变量
p赋值为IP相关内容、后续透视代码未重新执行的情况。你可以重启内核后按顺序重新执行所有代码单元格,确认输出结果。
内容的提问来源于stack exchange,提问作者Wrashi
相关产品推荐
相关产品推荐

