【问题标题】:How to sum annual data in a csv of daily data with many years of data如何将具有多年数据的每日数据的 csv 中的年度数据相加
【发布时间】:2019-02-14 09:06:41
【问题描述】:

使用每日数据的 csv 我试图找到每年的年总降水量。我的 csv 有很多年的数据。

我已经尝试过 AnnualMaxPRCP=df3.resample('AS').sum() 但这也总结了我的年份列。如何仅对 Precip 列求和?

df = pd.read_csv("Current2.csv")
df['Date']=pd.to_datetime(df['Date'])

df['Year']=df.Date.dt.year
df['New_date'] = df['Date']

df2=df[df.PRCP!='M']
df3=df2[df2.PRCP!='T']
df3['PRCP']=df3.PRCP.astype('float')

df3=df3.set_index(pd.DatetimeIndex(df3['New_date']))

AnnualMaxPRCP=df3.resample('AS').sum()

【问题讨论】:

  • df3.groupby('Year')['Your columns'].sum() ?
  • 当我把它改成那个时,我得到了这个错误:“TypeError: an integer is required”所以​​我把“df3['PRCP']=df3.PRCP.astype('float')”改为"df3['PRCP']=df3.PRCP.astype('int')" 并再次尝试,但随后收到此错误消息:“正在尝试在 DataFrame 的切片副本上设置值。尝试使用 .loc [row_indexer,col_indexer] = value 而不是"
  • @MeganMartin,您能否添加几行样本数据来分析数据以获得正确的结果。

标签: python pandas numpy


【解决方案1】:

如果您有 DatetimeIndex,那么您可以尝试以下方法。

df3.groupby(pd.Grouper(freq='AS'))['PRCP'].sum()

【讨论】:

    猜你喜欢
    • 2022-11-05
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 2020-01-20
    • 2018-02-01
    • 2017-04-06
    • 1970-01-01
    相关资源
    最近更新 更多