Ho un frame dati panda con due colonne. Ho bisogno di cambiare i valori della prima colonna senza influenzare la seconda e recuperare l'intero frame di dati con i soli valori della prima colonna modificati. Come posso farlo usando apply in panda?Panda: come posso utilizzare la funzione apply() per una singola colonna?
risposta
Dato un campione dataframe df
come:
a,b
1,2
2,3
3,4
4,5
quello che vuoi è:
df['a'] = df['a'].apply(lambda x: x + 1)
che restituisce:
a b
0 2 2
1 3 3
2 4 4
3 5 5
'apply' non dovrebbe mai essere usato in una situazione come questa –
@TedPetrou hai perfettamente ragione, era solo un esempio su come applicare una funzione generale su una singola colonna, come richiesto dall'OP. –
Per una singola colonna meglio usare map()
, come questo:
df = pd.DataFrame([{'a': 15, 'b': 15, 'c': 5}, {'a': 20, 'b': 10, 'c': 7}, {'a': 25, 'b': 30, 'c': 9}])
a b c
0 15 15 5
1 20 10 7
2 25 30 9
df['a'] = df['a'].map(lambda a: a/2.)
a b c
0 7.5 15 5
1 10.0 10 7
2 12.5 30 9
Perché 'map()' è migliore di 'apply()' per una singola colonna? – ChaimG
Penso che dovrebbe essere 'lambda a: a/2.' invece. –
Non è necessaria alcuna funzione. Puoi lavorare direttamente su un'intera colonna.
dati Esempio:
>>> df = pd.DataFrame({'a': [100, 1000], 'b': [200, 2000], 'c': [300, 3000]})
>>> df
a b c
0 100 200 300
1 1000 2000 3000
Metà tutti i valori nella colonna a
:
>>> df.a = df.a/2
>>> df
a b c
0 50 200 300
1 500 2000 3000
- 1. round una singola colonna in panda
- 2. in panda come posso groupby weekday() per una colonna datetime?
- 3. Come posso raccogliere una singola colonna in Spark?
- 4. Applicare la funzione al gruppo panda da
- 5. Utilizzare "apply" per applicare una funzione a una matrice in cui i parametri sono specifici della colonna
- 6. Come applicare correttamente una funzione lambda in una colonna di frame di dati panda
- 7. Perché panda rotolamento dimensione singola uso ndarray
- 8. panda pitone: rinominare etichetta singola colonna in multi-index dataframe
- 9. MySQL: Inserimenti multipli per una singola colonna
- 10. Creazione di una nuova colonna in Panda utilizzando la funzione lambda su due colonne esistenti
- 11. panda: Utilizzare if-else per popolare nuova colonna
- 12. Tronca `TimeStamp` colonna per la precisione ora in panda` DataFrame`
- 13. python panda rank per colonna
- 14. Come posso aggiungere una richiamata al metodo .apply()?
- 15. Gruppo per indice + colonna panda
- 16. Come utilizzare la variabile XSL in xsl: apply-templates?
- 17. come zscore normalizzare la colonna panda con nans?
- 18. Come posso ottenere `ghci` per utilizzare la funzione` show`?
- 19. Più chiavi esterne a una singola colonna
- 20. Due modelli variadici per una singola funzione?
- 21. Addizione/sottrazione colonna panda
- 22. Come posso utilizzare un'istruzione SQL UPDATE per aggiungere 1 anno a una colonna DATETIME?
- 23. Come utilizzare i giorni come finestra per la funzione rolling_apply di panda
- 24. Applicare la funzione con args nei panda
- 25. come velocizzare una funzione di panda molto lenta?
- 26. Posso utilizzare una singola cella prototipo in più TableViews?
- 27. Determinazione dell'ultima riga in una singola colonna
- 28. Come passare più argomenti alla funzione apply
- 29. Come posso sopprimere l'output dell'intestazione di colonna per una singola istruzione SQL?
- 30. Come posso sopprimere un avviso JSLint per una singola linea?
invio prego alcuni dati campione di ingresso e uscita desiderata. –
Non dovresti quasi mai usare 'apply' in una situazione come questa. Operare direttamente sulla colonna. –