Python Pandas сумма нескольких столбцов - PullRequest
0 голосов
/ 29 августа 2018

Нужен совет: я пытаюсь суммировать поле SERIAL COUNT с общим количеством SERIAL NUMBERS в группе с тем же номером ITEM? Любые предложения приветствуются?

 fincon_serials = pd.read_csv('Raw Data/LISTSNO Calvinia.TXT',skiprows = 1)

 fincon_codes = pd.read_excel('Raw Data/STKCOUNT Calvinia.xls', index=None)

 fincon_codes = fincon_codes.drop(columns=['GROUP','BIN','Unnamed: 5'])

 fincon_codes = pd.merge(fincon_codes, fincon_serials[['ITEM NUMBER', 'SERIAL NUMBER']], on = ['ITEM NUMBER'])

 fincon_codes['SERIAL COUNT'] = 1

 fincon_codes = fincon_codes.groupby(['ITEM NUMBER','CAT','DESCRIPTION','NORMAL','FAULTY','SUPPLR','SWP-OUT','TOTAL','COST','VALUE','SERIAL NUMBER'])[['SERIAL COUNT']].sum()

 fincon_codes.head()

Это мой первый вопрос, поэтому, пожалуйста, примите мои извинения, если он не в правильном формате.

Я искал решение в документации PANDAS, но не могу найти решение и подходит для того, что я хочу сделать, так как столбец SERIAL COUNT должен посчитать SERIALS в столбце SERIAL NUMBER и добавить его в SERIAL COUNT.

Токовый выход:

Output of Code

Требуется, чтобы у ПОСЛЕДОВАТЕЛЬНОГО СЧЕТА было общее количество для каждой группы номеров предметов.

Спасибо

1 Ответ

0 голосов
/ 29 августа 2018

Я создал некоторые данные, например:

item_number = pd.Series([1,2,2,1,1,3])
serial_number = pd.Series([112, 111, 111, 134, 155, 111])
another_column = pd.Series([1,2,3,4,5,6])
df = pd.concat([item_number, serial_number, another_column], 1)
df.columns = ['item_number', 'serial_number', 'another_column']

В ваших данных "другой столбец" - это любой другой столбец, такой как "CAT", "DESCROPTION" и т. Д. Если вам нужно рассчитать количество уникальных значений «серийный номер» в «номере товара», я думаю, вы можете просто использовать groupby(['item_number', 'serial_number']).

result = df.groupby(['item_number', 'serial_number']).another_column.count()

И у вас будет такой вывод:

item_number  serial_number
1            112              1
             134              1
             155              1
2            111              2
3            111              1

Вам нужно объединить это с другими столбцами? Если вы можете представить мир ваших данных, то я могу написать полный пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...