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

如何在合并时间序列数据集中选取全年份GDP及GDP Growth自变量?

问题描述

合并涵盖2014-2022年的三个数据集后,得到近30列数据,包含逐年的Internet Penetration Rate、GDP和GDP Growth三类指标。需要选取所有年份的GDP和GDP Growth作为自变量,Internet Penetration Rate作为因变量,在VSCode的Jupyter Notebooks中操作。

初始代码框架如下:

X = df_merged.iloc[:, ].values # independent variables: GDP and GDP Growth %
y = df_merged.iloc[:, ].values # dependent variable: Internet Penetration Rate

尝试以下代码筛选自变量时,仅获取到2014年的GDP和GDP Growth数据,请问如何获取全年份的对应列?

gdp_col = [col for col in df_merged.columns if col.startswith("GDP ")][0]
gdp_growth_col = [col for col in df_merged.columns if col.startswith("GDP Growth ")][0]
X_columns = [gdp_col, gdp_growth_col]
X = df_merged.loc[:, X_columns]
解决方案

问题出在代码中的[0]:它只取了列表推导式返回结果的第一个元素(也就是2014年对应的列),因此仅得到单年份数据。要获取所有年份的目标列,只需去掉[0],保留完整的列列表即可。

修改后的代码如下:

# 获取所有年份的GDP列
gdp_cols = [col for col in df_merged.columns if col.startswith("GDP ")]
# 获取所有年份的GDP Growth列
gdp_growth_cols = [col for col in df_merged.columns if col.startswith("GDP Growth ")]
# 合并两类自变量列
X_columns = gdp_cols + gdp_growth_cols
# 提取自变量X(如需转为numpy数组可加.values)
X = df_merged.loc[:, X_columns]

# 提取因变量y(所有年份的Internet Penetration Rate列)
y = df_merged.loc[:, [col for col in df_merged.columns if "Internet Penetration Rate" in col]]

代码说明

  • 去掉[0]后,列表推导式会返回所有符合前缀条件的列,覆盖2014-2022年的全部目标指标;
  • 用+合并GDP和GDP Growth的列列表,得到完整的自变量列集合;
  • 因变量y的提取逻辑类似,通过列名包含关键字的方式筛选所有年份的Internet Penetration Rate列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 03:38:11