Zmiana nazw kolumn w funkcji Pandas Groupby [duplikat]
To pytanie ma już odpowiedź tutaj:
Wiele agregacji tej samej kolumny przy użyciu pand GroupBy.agg () 3 odpowiedzi1). Mam następujący przykładowy zestaw danych:
>>> df
ID Region count
0 100 Asia 2
1 101 Europe 3
2 102 US 1
3 103 Africa 5
4 100 Russia 5
5 101 Australia 7
6 102 US 8
7 104 Asia 10
8 105 Europe 11
9 110 Africa 23
Chciałem pogrupować obserwacje tego zestawu danych według ID regionu i sumując liczbę dla każdej grupy. Użyłem więc czegoś takiego:
>>> print(df.groupby(['ID','Region'],as_index=False).count().sum())
ID Region count
0 100 Asia 2
1 100 Russia 5
2 101 Australia 7
3 101 Europe 3
4 102 US 9
5 103 Africa 5
6 104 Asia 10
7 105 Europe 11
8 110 Africa 23
Przy użyciu as_index = False Jestem w stanie uzyskać wynik „SQL-like”. Mój problem polega na tym, że nie jestem w stanie zmienić nazwy łącznej liczby zmiennych tutaj. Więc w SQL, jeśli chciałbym zrobić powyższą rzecz, zrobiłbym coś takiego:
select ID, Region, sum(count) as Total_Numbers
from df
group by ID, Region
order by ID, Region
Jak widzimy, bardzo łatwo jest mi zmienić nazwę zmiennej agregacyjnej „count” na Total_Numbers w SQL. Chciałem zrobić to samo w Pandach, ale nie mogłem znaleźć takiej opcji w funkcji grupowania. Czy ktoś może pomóc?
2). Drugim pytaniem i spostrzeżeniami jest to, że można bezpośrednio używać nazw kolumn w funkcji ramki danych Pandas bez umieszczania ich w cudzysłowach? Rozumiem, że nazwy zmiennych są ciągami, więc muszą znajdować się w cudzysłowach, ale widzę, czy używamy funkcji zewnętrznej ramki danych i jako atrybutu nie wymagamy, aby były wewnątrz cudzysłowów. Podobnie jak df.ID.sum () itp. Tylko wtedy, gdy używamy go w funkcji DataFrame, takiej jak df.sort () lub df.groupby, musimy użyć go w cudzysłowie. Jest to w rzeczywistości trochę uciążliwe, ponieważ w SQL, SAS lub innych językach po prostu używamy nazwy zmiennej bez cytowania ich. Wszelkie sugestie na ten temat?
Prosimy zasugerować powyższe dwa punkty (pierwszy główny, drugi drugi opinia
Dzięk