Сводная таблица не может получить тот же результат, что и Excel

#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