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

使用Pandas对全球GDP数据分组失败,需实现多国家GDP折线图

解决Pandas分组问题

你遇到的分组问题是因为Pandas的groupby()返回的是分组对象,并非直接的聚合结果。直接打印该对象或调用head()只会返回原数据的前几行,不会展示分组后的有效数据。要得到分组结果,必须配合聚合操作,比如计算均值、求和,或提取单个分组的数据:

1. 基础分组与聚合示例

假设数据已读取到df中:

import pandas as pd

# 读取数据(替换为你的实际读取方式,如pd.read_csv/pd.read_excel等)
df = pd.read_csv("your_gdp_data.csv")

# 按Entity分组,计算每个国家的人均GDP均值(示例聚合操作)
grouped = df.groupby('Entity')['GDP per capita'].mean()
print(grouped)

# 查看单个国家的分组数据,比如"China"
china_group = df.groupby('Entity').get_group('China')
print(china_group.head())

2. 验证分组是否生效

若要确认分组逻辑正确,可通过groups属性查看分组的键和对应行索引:

# 查看所有分组的Entity名称
print(df.groupby('Entity').groups.keys())

# 查看某个Entity对应的行索引
print(df.groupby('Entity').groups['United States'])

实现交互式折线图(3个国家GDP走势)

用Plotly可快速实现交互式折线图,步骤如下:

1. 安装Plotly(未安装时执行)

pip install plotly

2. 代码实现

import plotly.express as px

# 选择要展示的3个国家,示例为["China", "United States", "Japan"]
selected_countries = ["China", "United States", "Japan"]

# 筛选目标国家的数据
filtered_df = df[df['Entity'].isin(selected_countries)]

# 创建交互式折线图
fig = px.line(filtered_df, 
              x='Year', 
              y='GDP per capita', 
              color='Entity',
              title='历年人均GDP走势(选定国家)',
              labels={'GDP per capita': '人均GDP', 'Year': '年份'},
              hover_data=['Code'])

# 显示图表
fig.show()

该代码生成的图表支持缩放、悬停查看数据详情、切换图例等交互功能,完全匹配你的需求。


额外提示

  • 若数据存在缺失值,可先用df.dropna(subset=['GDP per capita'])清理后再处理,避免图表出现断裂。
  • 如需自定义图表样式(如线条颜色、粗细),可通过fig.update_traces()方法调整。

内容的提问来源于stack exchange,提问作者Erdem

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 19:06:07