#python #python-3.x #group-by #pivot-table
#python #python-3.x #группировка по #сводная таблица
Вопрос:
У меня есть фрейм данных ниже:
Year Material Total_amount Customer_code
2019 Table 20 00147
2019 Chair 25 00159
2019 Table 20 00160
2020 Table 20 00159
2020 Spoon 2 00147
2020 Fork 2 00147
Я пытаюсь найти клиента, который продолжает возвращаться
cust = (pd.pivot_table(sd_df,
values=['Total Amount','Customer Code'],
index=['Year'],
aggfunc=[np.sum, len]).reset_index()
)
cust
Я сделал это, но он вернул мне это
Редактировать: я пытаюсь получить сумму общей суммы и количество клиентского кода.
Приветствуется любая помощь. Спасибо!
Комментарии:
1. Я не вижу, как получить какой-либо результат из данных, которые вы включили в свой вопрос. Похоже, что вы сгенерировали оба результата из гораздо большего количества данных, чем вы включили в вопрос. Какой результат вы получаете, как в Pandas, так и в Excel, только из данных, которые вы включаете в свой вопрос?
2. привет, Люк, я использую одни и те же наборы данных с равными объемами данных для обоих. В принципе, я пытаюсь получить тот же формат, что и excel. С суммой общего количества и количества всего кода клиента
Ответ №1:
Вы можете использовать DataFrame.groupby
print(
df.groupby('Year').agg(**{
"Sum_Total_Amount": ('Total_amount', 'sum'),
"Count_Cust_Code": ('Customer_code', 'nunique'),
}).reset_index()
)
Year Sum_Total_Amount Count_Cust_Code
0 2019 65 3
1 2020 24 2