Как суммировать значения в столбце, используя условные операторы других столбцов в кадре данных pandas? - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть датафрейм с 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 является записью осадков за соответствующие даты. Теперь я хочу найти сумму значений prcp для каждого диапазона дат station с 1999-05-01 по 1999-05-07. Я хочу вывод, как это:

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

  .  

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Сначала отфильтруйте ваш фрейм данных

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()
0 голосов
/ 05 апреля 2019

Если вы не хотите группировать по отношению к 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'})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...