Cách tốt nhất để thực hiện một nhóm trên một khung dữ liệu Pandas, nhưng loại trừ một số cột khỏi nhóm đó là gì? Ví dụ. Tôi có foll. dataframe:Pandas tính theo nhóm, nhưng loại trừ các cột nhất định
Code Country Item_Code Item Ele_Code Unit Y1961 Y1962 Y1963
2 Afghanistan 15 Wheat 5312 Ha 10 20 30
2 Afghanistan 25 Maize 5312 Ha 10 20 30
4 Angola 15 Wheat 7312 Ha 30 40 50
4 Angola 25 Maize 7312 Ha 30 40 50
Tôi muốn nhóm các cột Quốc gia và Item_Code và chỉ tính tổng các hàng nằm dưới các cột Y1961, Y1962 và Y1963. Các dataframe kết quả sẽ giống như thế này:
Code Country Item_Code Item Ele_Code Unit Y1961 Y1962 Y1963
2 Afghanistan 15 C3 5312 Ha 20 40 60
4 Angola 25 C4 7312 Ha 60 80 100
Ngay bây giờ, tôi đang làm điều này:
df.groupby('Country').sum()
Tuy nhiên, điều này cho biết thêm lên các giá trị trong cột Item_Code là tốt. Có cách nào tôi có thể chỉ định các cột để bao gồm trong hoạt động tổng() và những cột để loại trừ?
Làm cách nào để bao gồm số lượng bản ghi cho mỗi quốc gia và mã mặt hàng làm cột khác? –
Bạn có thể tạo một cột giả trước khi nhóm theo đó chỉ chứa 1. sau đó tổng sẽ tổng hợp những người tạo ra một số. –
Nếu bạn chỉ muốn loại trừ một hoặc hai cột, sau đó bạn nhận được tất cả các tên cột như trong 'listColumns = list (df.columns)' thì bạn loại bỏ các cột mà bạn không muốn, 'listColumns.remove ('Y1964') 'và cuối cùng là tổng kết của bạn:' df.groupby (['Quốc gia', 'Item_Code']) [listColumns] .sum() ' –