使用Plotly Express绘制通胀数据树形图遇问题求助
Plotly Express树形图父级/层级数据处理报错解决方案
使用Plotly Express绘制通胀数据树形图时,因父级与层级数据处理不当持续报错,相关代码如下:
import pandas as pd import plotly.express as px # Read the data from the Excel file df = pd.read_excel('UKCPI2.xlsx', engine='openpyxl') # Create the treemap with the filtered data fig = px.treemap(df, path=['parent', 'Series'], values='Contrib') # Ensure 'contrib' is the correct column name for your values fig.show()
数据格式参考下图:
问题排查与修正方案
- 处理父级列空值
从数据截图可见,顶级节点的parent列存在空值,Plotly Express要求顶级节点的父级值必须为空字符串或None。pandas读取Excel空单元格时会转为NaN,需手动替换:
df['parent'] = df['parent'].fillna('')
校验列名一致性
确认Contrib列名与数据中完全匹配(pandas列名区分大小写),若列名有误需同步修改代码中的参数。验证层级逻辑正确性
确保子节点的parent值必须对应数据中存在的Series值,避免出现父级节点不存在的情况。
修正后的完整代码
import pandas as pd import plotly.express as px # 读取Excel数据 df = pd.read_excel('UKCPI2.xlsx', engine='openpyxl') # 处理父级列空值,适配Plotly树形图要求 df['parent'] = df['parent'].fillna('') # 校验关键列是否存在 if 'Contrib' not in df.columns: raise ValueError("数据中未找到'Contrib'列,请检查列名拼写") # 生成树形图 fig = px.treemap(df, path=['parent', 'Series'], values='Contrib') fig.show()
内容的提问来源于stack exchange,提问作者user1953588
相关产品推荐
相关产品推荐

