如何将列中的列值(如YYYYMMDD)仅与列中的YYYY求和?

2024-10-05 15:29:35 发布

您现在位置:Python中文网/ 问答频道 /正文

与此(How do I sum values in a column that match a given condition using pandas?)类似的问题,但在我的例子(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"))

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


Tags: 函数indfthatcolumnrdyeardo
1条回答
网友
1楼 · 发布于 2024-10-05 15:29:35

您可以筛选所需年份的数据,然后对新组进行求和,如下所示:

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"))

如果您的日期列是日期时间,则返回的结果应该与您想要的结果类似。如果不是,则需要将该列转换为类似的datetime

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

相关问题 更多 >