pandas сводная таблица не добавляет, а объединяет значения - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь создать сводную таблицу, используя pandas

ns = pd.read_csv('latest_sg.csv')
sfdc = pd.read_csv('report1.csv')

Сопоставление столбца с поиском

ns.rename(columns={'accountid':'Account ID'},inplace = True)

Vlookup

lookup = pd.merge(ns,sfdc[['Account ID','Account Status']],on=['Account ID'],how='left')
lookup = lookup.dropna(axis=0, subset=['Account Status'])

сводная таблица

pivot = lookup.pivot_table(index='Account ID',values='gb',aggfunc='sum',fill_value=0)

Проблема в том, что при print(pivot) выходные данные не возвращают сумму значений столбца 'gb', а объединяют значения.

Пример. если в идентификаторе учетной записи указано, что в «qwer» есть 3 строки со значениями в «gb», равными 3,4 и 5, то выходные данные должны быть

qwer               12 

, а выходные данные -

qwer               345

Пожалуйста, помощь!

1 Ответ

0 голосов
/ 08 апреля 2020

Ваш столбец, скорее всего, является объектом и целым числом, объединяемые строки - это ожидаемое поведение, используйте

df[col] = pd.to_numeric(df[col])

и print(df.dtypes) для проверки типов данных столбца.

, если вам нужно игнорировать строки в числовом столбце, вы можете добавить еще один аргумент, чтобы привести не числовые значения c в nan

pd.to_numeric(df[col], errors='coerce')

, чтобы проиллюстрировать это

1 + 1 
>> 2
'1' + '1'
>> '11'
...