Come faccio a moltiplicare ogni elemento di una data colonna del mio dataframe con uno scalare? (ho provato a guardare SO, ma non riesco a trovare la giusta soluzione)Python: Pandas Dataframe come moltiplicare l'intera colonna con uno scalare
fare qualcosa di simile:
df['quantity'] *= -1 # trying to multiply each row's quantity column with -1
mi dà un avvertimento:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
Nota: Se possibile, Non voglio ripetere il dataframe e fare qualcosa di simile ... poiché penso che qualsiasi operazione matematica standard su un'intera colonna dovrebbe essere possibile senza dover scrivere un ciclo:
for idx, row in df.iterrows():
df.loc[idx, 'quantity'] *= -1
EDIT:
Sono in esecuzione 0.16.2
di panda
piena traccia:
SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
self.obj[item] = s
Controlla il tipo di quella colonna usando 'dtype'. Non riesco a replicare questo errore, è anche bene dare il traceback completo. – Leb
Ho modificato per aggiungere traccia completa ... inoltre non è un errore, è un avvertimento (per chiarezza) – labheshr
Penso che sia causato da qualcosa di diverso da quella linea, o forse quella linea sta causando l'avviso che è generato da prima. Quello che stai ottenendo è legato all'affinamento del dataframe. – Leb