Jaki jest najlepszy sposób, aby zrobić groupby na ramce danych Pandy, ale wykluczyć niektóre kolumny z tej grupy? Na przykład. Mam foll. dataframe:Panda suma przez groupby, ale wykluczyć niektóre kolumny
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
Chcę GroupBy Kraju kolumny i Item_Code i tylko obliczyć sumę wierszy objętych kolumn Y1961, Y1962 i Y1963. Powstały dataframe powinna wyglądać następująco:
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
Teraz robie to:
df.groupby('Country').sum()
Jednak ta sumuje wartości w kolumnie Item_Code również. Czy jest jakiś sposób mogę określić, które kolumny należy uwzględnić w operacji sum() i które należy wyłączyć?
Jak uwzględnić liczbę rekordów dla każdego kraju i kodu przedmiotu jako kolejną kolumnę? –
Można utworzyć atrapę kolumny przed grupowaniem przez to, że zawiera 1. wtedy suma będzie sumować je tworząc licznik. –
Jeśli chcesz tylko wykluczyć kolumnę lub dwie, otrzymasz wszystkie nazwy kolumn jak na liście 'listColumns = list (df.columns)', a następnie usuniesz kolumny, których nie chcesz, 'listColumns.remove ('Y1964') 'i wreszcie wykonaj twoje sumowanie:' df.groupby (['Country', 'Item_Code']) [listColumns] .sum() ' –