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

如何在Pandas DataFrame中筛选2020年数据并计算GBP、USD两列的均值

问题原因

你的代码存在两个问题:

  • 没有提前筛选出2020年的数据集,直接分组统计会返回所有日期对应的均值
  • 按Date列直接分组的统计粒度是单日,没办法直接得到全年的聚合结果

可行解决方案(适配新手)

import pandas as pd

# 读取原始数据
df = pd.read_csv ('C:/Users/user/AppData/Local/Programs/Python/Python39/Scripts/usd_vs_gbp_euro_2011_2021.csv')
# 把Date列转为pandas识别的日期格式,为后续按年筛选做准备
df['Date'] = pd.to_datetime(df['Date'])
# 筛选出所有2020年的数据行
df_2020 = df[df['Date'].dt.year == 2020]
# 直接计算2020年GBP、USD两列的平均值
avg_gbp = df_2020['GBP'].mean()
avg_usd = df_2020['USD'].mean()

print(f"2020年GBP列平均值:{avg_gbp}")
print(f"2020年USD列平均值:{avg_usd}")

# 如果你需要计算2020年英镑兑美元的平均汇率,补充以下代码即可
avg_gbp_to_usd = avg_gbp / avg_usd
print(f"2020年英镑兑美元平均汇率:{avg_gbp_to_usd}")

扩展写法(可一次统计所有年份的均值)

如果你后续需要查询其他年份的均值,可以用按年分组的写法一次性生成所有年份的统计结果:

df['Date'] = pd.to_datetime(df['Date'])
# 按年分组,同时统计GBP、USD两列的年均值
yearly_avg = df.groupby(df['Date'].dt.year)[['GBP', 'USD']].mean()
# 直接取2020年的结果
print(yearly_avg.loc[2020])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 08:36:03