1). Ho un insieme di dati seguente esempio:Ridenominazione dei nomi delle colonne in Pandas Funzione Groupby
>>> 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
ho voluto raggruppare le osservazioni di questo set di dati per ID di una Regione e sommando il conteggio per ogni gruppo. Così ho usato qualcosa di simile:
>>> 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
On utilizzando as_index = False sono in grado di ottenere un output "SQL-like". Il mio problema è che non riesco a rinominare il conteggio delle variabili aggregate qui. Quindi, in Sql, se voleva fare la cosa di cui sopra vorrei fare qualcosa di simile:
select ID, Region, sum(count) as Total_Numbers
from df
group by ID,Region
order by ID, Region
Come si vede, è molto facile per me di rinominare la variabile 'conteggio' aggregato Total_Numbers in SQL. Volevo fare la stessa cosa in Pandas ma non trovo questa opzione nella funzione groupby. Qualcuno può aiutare?
2). La seconda domanda e più di un'osservazione è che è possibile utilizzare direttamente i nomi delle colonne nella funzione dataframe di Pandas senza racchiuderli tra virgolette? Capisco che i nomi delle variabili siano string, quindi devono essere tra virgolette, ma vedo se uso all'esterno della funzione dataframe e come attributo non richiediamo che siano tra virgolette. Come df.ID.sum() ecc. È solo quando lo usiamo in una funzione DataFrame come df.sort() o df.groupby dobbiamo usarlo all'interno di virgolette. Questo è in realtà un po 'di dolore come in SQL o in SAS o in altri linguaggi semplicemente usiamo il nome della variabile senza citarli. Qualche suggerimento su questo?
Si prega di suggerire i due punti precedenti (1 ° principale, 2 ° più di un parere).
Grazie
Thxs per la risposta. La cosa del rinominato ha aiutato, tranne che suppongo che nella prima sintassi dobbiamo anche menzionare le colonne = .. quindi, .rename (columns = {'count': 'Total_Numbers') }). Altrimenti ci vorrebbe per l'indice e non cambia il nome della colonna. La seconda cosa funziona perfettamente, ma se una o due variabili devono essere rinominate, suppongo che la prima sia più comoda piuttosto che menzionare tutti i nomi delle variabili nella seconda sintassi. Speravo che ci fosse qualcosa in groupby ma sembra che non ci sia. Inoltre, capisco che i panda siano un dotto intrinseco. Speravo in una certa flessibilità in Panda –
Baktaawar