首页 > 解决方案 > 如何在 Pandas 中仅按 YYYY 对列中的 YYYY-MM-DD 等列值求和?

问题描述

与此类似的问题(如何使用熊猫对与给定条件匹配的列中的值求和?)但在我的情况下(https://imgur.com/a/aQNJjpp)我的日期格式为 YYYY-MM-DD我想在第 4 列中总结每年的所有值。(任务是创建一个函数“Rain_year”,当给定输入年份时,它会为您提供当年的总降雨量)

代码:

def rain_year(a):
    df.loc['a-01-01':'a-12-31']
    df.loc[df['Dygn'] ==a, 'Nederbörd(mm)'].sum()
    return row["Nederbörd(mm)"].sum()
rain_year("1995")
print(rain_year("1995"))

但这并没有给我任何东西(既没有值也没有错误消息)。

标签: pythonpandas

解决方案


您可以过滤您想要的年份的数据,然后像这样对新组求和:

def rain_year(df,year):
    year_hold = df[df["date column"].dt.strftime("%Y")==year]
    return year_hold["Nederbörd(mm)"].sum()

print(rain_year(df,"1995"))

假设您的日期列是日期时间,这应该返回类似于您想要的内容。如果不是,您需要将该列转换为这样的日期时间。

df["date column"] = pd.to_datetime(df["date column"])

推荐阅读