Несколько операций над разными столбцами в одном Dataframe - PullRequest
0 голосов
/ 07 сентября 2018

Несколько операций с разными столбцами в одном Dataframe

У меня есть датафрейм, как указано ниже:

PNO         VAL1    VAL2    VAL3    VAL4    CNT
100         45      15      35      98      1
100         25      85      24      65      1
100         85      74      74      75      1
100         98      36      36      84      1
100         74      54      54      52      0
2000        36      21      21      41      1
2000        54      25      45      52      1
2000        21      85      25      63      1
2000        58      98      85      89      0
30000       96      35      66      87      1
30000       32      24      87      54      1
30000       35      58      41      56      1
30000       24      96      52      25      1

Я хочу создать результирующий фрейм данных, который будет иметь следующую операцию для разных столбцов:

для каждого PNO

  1. Найти максимальное значение столбца VAL1
  2. Найти минимальное значение столбца VAL2
  3. Найти последнее значение столбца VAL3 и VAL4
  4. Найти сумму столбца CNT

Результат:

PNO         VAL1    VAL2    VAL3    VAL4    CNT
100         98      15      54      52      4
2000        58      21      85      89      3
30000       96      24      52      25      4

1 Ответ

0 голосов
/ 07 сентября 2018

Используйте groupby и agg с dict правил для каждого столбца

In [32]: (df.groupby('PNO', as_index=False)
            .agg({'VAL1': 'max', 'VAL2': 'min', 
                  'VAL3': 'last', 'VAL4': 'last', 'CNT': 'sum'})
             )
Out[32]:
     PNO  VAL1  VAL2  VAL3  VAL4  CNT
0    100    98    15    54    52    4
1   2000    58    21    85    89    3
2  30000    96    24    52    25    4
...