我有一个包含5列和25552行的数据框。数据框结构如下:
mydf.head(4)
station date Lat Lon prcp
USC00397992 1998-10-01 44.26 -99.44 0.5
USC00397993 1998-10-01 44.01 -100.35 1.2
USC00397994 1998-10-01 45.65 -97.12 1.1
USC00397995 1998-10-01 43.90 -99.52 0.7
station
列中有许多不同的站点,而date
列中的日期范围是1998-10-01至1999-06-30。同样,每个不同的站点都有不同的纬度和经度。 prcp
列记录了各个日期的降水量。现在,我想找到1999年5月1日至1999年5月7日每个prcp
日期范围的station
值的总和。我想要这样的输出:
station Lat Lon sum_from_May1_to_May7
USC00397992 44.26 -99.44 2.5 (for instance)
. . . .
. . . .
.
答案 0 :(得分:1)
首先过滤数据框
df2 = df.loc[(df.date >= '1999-05-01') & (df.date <= '1999-05-07)]
然后直接
df2.groupby('station').prcp.sum()
如果您不想将不同的Lat
和Lon
分组在一起,那么
df2.groupby(['station', 'Lat', 'Lon']).prcp.sum()
答案 1 :(得分:0)
如果您不想根据纬度分组:
df[(df['date']>pd.Timestamp(1995,5,1)) & (df['date']<pd.Timestamp(1995,5,7))]\
.groupby('station').agg({'prcp':'sum', 'Lat' :'first', 'Lon' :'first'})