Python使用Plotly绘制地图时csv多列数据无法正常导入显示如何解决
Plotly地图多列CSV数据无法显示解决方案
第一步:先排查CSV读取异常问题
- 确认CSV文件编码为UTF-8,数值列没有夹杂中文、特殊符号、空值,读取时可以加参数避免格式报错:
df = pd.read_csv("你的数据路径.csv", encoding="utf-8", keep_default_na=False) - 统一处理列名前后空格,避免参数匹配时找不到列:
df.columns = df.columns.str.strip() - 读取完成后执行
print(df.info())确认所有列都被正常识别,数值列格式为int/float,没有被识别为object类型。
第二步:修正Plotly绘图参数匹配逻辑
仅含iso_alpha列能正常运行说明你的国家编码格式是对的,多列异常基本是参数映射错误,参考以下示例调整参数:
import pandas as pd import plotly.express as px # 读取数据 df = pd.read_csv("你的数据文件.csv") # 绘图参数要和CSV列名完全对应 fig = px.choropleth( df, locations="iso_alpha", # 固定对应你的国家编码列名 locationmode="ISO-3", # 如果是二位ISO编码改为"ISO-2" color="你要展示的数值列名", # 替换为你自己CSV里的数值列名 hover_data=["你想悬浮展示的其他列名1", "其他列名2"] # 多列数据都可以加在这里 ) fig.show()
第三步:校验数据匹配度
如果还有部分数据不显示,执行以下代码筛选出不匹配的国家编码,修正为标准ISO编码即可:
# 获取Plotly支持的所有标准ISO-3编码 valid_iso = px.data.gapminder()["iso_alpha"].unique() # 筛选你数据里不支持的编码行 invalid_rows = df[~df["iso_alpha"].isin(valid_iso)] print(invalid_rows)
内容的提问来源于stack exchange,提问作者Lys4nder
相关产品推荐
相关产品推荐

