Sia la tabella pivot pandas.crosstab che quella pivot sembrano fornire la stessa identica funzionalità. Ci sono delle differenze?In che modo una tabella a campi incrociati di Pandas è diversa da un pivot_table di Pandas?
risposta
è lo stesso, se in uso pivot_table
aggfunc=len
e fill_value=0
:
pd.crosstab(df['Col X'], df['Col Y'])
pd.pivot_table(df, index=['Col X'], columns=['Col Y'], aggfunc=len, fill_value=0)
EDIT: Non v'è più differenza:
predefinito aggfunc
sono diversi: pivot_table
-np.mean
, crosstab
-len
.
Il parametro margins_name
è solo in pivot_table
.
In pivot_table
è possibile utilizzare Grouper
per index
e columns
parole chiave.
penso che se avete bisogno semplicemente tabella di frequenza, crosstab
funzione è meglio.
La differenza principale tra i due è che pivot_table
prevede che i dati di input siano già un DataFrame; passare un DataFrame a pivot_table
e specificare lo index
/columns
/values
passando i nomi di colonna come stringhe. Con cross_tab
, non è necessario disporre di un DataFrame, poiché si passa semplicemente oggetti di tipo array per index
/columns
/values
.
Guardando il source code per crosstab
, si riprende in sostanza gli oggetti array come si passa, crea un dataframe, poi chiama pivot_table
a seconda dei casi.
In generale, utilizzare pivot_table
se si dispone già di un DataFrame, in modo da non avere il sovraccarico aggiuntivo di creare nuovamente lo stesso DataFrame. Se stai iniziando da oggetti tipo array e riguarda solo i dati pivot, usa crosstab
. Nella maggior parte dei casi, non penso che farà davvero la differenza quale funzione decidi di usare.
- 1. Tracciare da tabella pivot utilizzando Pandas
- 2. python pandas: pivot_table abbassa silenziosamente gli indici con nans
- 3. Analizza una colonna di Pandas a Datetime
- 4. In che modo una chiusura è diversa da una richiamata?
- 5. Esportare un dataframe di Pandas come immagine di tabella
- 6. Pandas Dataframe a RDD
- 7. Come spostarmi in modo efficiente da un dataframe di Pandas a JSON
- 8. Python PANDAS gruppo dataframe da base a una condizione
- 9. Crea una tabella temporanea in MySQL usando Pandas
- 10. Campi incrociati con più elementi
- 11. Intervalli di date in Pandas
- 12. Pretty Printing a pandas dataframe
- 13. aiutarmi a scrivere una query SQL a campi incrociati
- 14. In che modo l'implementazione di LinkedHashMap è diversa da HashMap?
- 15. pandas estrapolazione di polinomio
- 16. Crystal Reports campi incrociati
- 17. è Pandas concat una funzione sul posto?
- 18. Rimuovi righe di zeri da una serie di Pandas
- 19. Pandas chiamata to_csv è anteporre una virgola
- 20. Pandas SettingWithCopyWarning
- 21. Pandas Scrivi tabella a MySQL: "impossibile eseguire il rollback"
- 22. Pandas data groupby gamma
- 23. T-test in Pandas
- 24. Migrazione di MySQL a una tabella con diversa struttura
- 25. Visualizzazione del frame di dati Pandas come tabella
- 26. Ricerca Pandas, mappatura di una colonna in un dataframe a un'altra in un dataframe diverso
- 27. Finanziamenti di pandas yahoo DataReader
- 28. indicizzazione e colonne di dati in Pandas/
- 29. Formattazione delle stringhe di timedeltas in Pandas
- 30. Pandas SQL chunksize
Ma sembra che si possa anche avere un 'aggfunc' per la funzione crosstab. –