Групповые строки и сумма - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть следующий фрейм данных:

print(inventory_df)

dt_op        Prod_1  Prod_2 ... Prod_n
10/09/18       0        8         0
10/09/18       5        0         2

11/09/18       4        0         0
11/09/18       0       10         0

...

And I would like to get:

print(final_df)

dt_op        Prod_1  Prod_2 ... Prod_n
10/09/18       5        8         2     
11/09/18       4       10         0 

...

Я пробовал:

final_df = inventory_df.drop_duplicates(subset=None, keep='first', inplace=False)

Но он не дает желаемого результата.Как я могу создать final_df?

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Только что смоделировали Stated DataFrame, вы спросили о groupby + sum() между строками.

Воспроизведенный фрейм данных:

>>> df
      dt_op  Prod_1  Prod_2  Prod_n
0  10/09/18       0       8       0
1  10/09/18       5       0       2
2  11/09/18       4       0       0

Использование groupby вокруг столбцов axis=1(of dimension 1, which is what used to be columns) или просто df.groupby('dt_op').sum:

>>> df.groupby('dt_op').sum(axis=1)
          Prod_1  Prod_2  Prod_n
dt_op
10/09/18       5       8       2
11/09/18       4       0       0

Однако, вы ищете буквальную сумму () строк в столбцах:

>>> df['new_sum'] = df.sum(axis=1)
>>> df
      dt_op  Prod_1  Prod_2  Prod_n  new_sum
0  10/09/18       0       8       0        8
1  10/09/18       5       0       2        7
2  11/09/18       4       0       0        4
0 голосов
/ 20 ноября 2018

Вы можете использовать функцию pandas groupby с sum():

In [412]: inventory_df
Out[412]: 
      dt_op  Prod_1  Prod_2
0  10/09/18       0       8
1  10/09/18       5       0
2  11/09/18       4       0
3  11/09/18       0      10

In [413]: inventory_df.groupby('dt_op').sum()
Out[413]: 
          Prod_1  Prod_2
dt_op                   
10/09/18       5       8
11/09/18       4      10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...