如何使用数据帧中其他列的条件语句对列中的值求和?

2024-06-28 19:41:34 发布

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

我有一个数据帧,有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-05-01到1999-05-07的每个station日期范围找到prcp值的总和

station       Lat      Lon     sum_from_May1_to_May7
 USC00397992  44.26  -99.44       2.5 (for instance)
  .             .       .           .
  .             .       .           .

  .  

Tags: 数据date结构headlonlatstation纬度
2条回答

首先过滤数据帧

df2 = df.loc[(df.date >= '1999-05-01') & (df.date <= '1999-05-07)]

然后直截了当地说

df2.groupby('station').prcp.sum()

如果不想将不同的LatLon组合在一起,那么

df2.groupby(['station', 'Lat', 'Lon']).prcp.sum()

如果您不想对lat long进行分组:

df[(df['date']>pd.Timestamp(1995,5,1)) & (df['date']<pd.Timestamp(1995,5,7))]\
     .groupby('station').agg({'prcp':'sum', 'Lat' :'first', 'Lon' :'first'})

相关问题 更多 >