2017-10-11 3 views
-2

Gibt es eine Möglichkeit, einen konstanten Wert von der gesamten Spalte zu subtrahieren?Panda Datenrahmen, der den Float-Wert von einer Spalte subtrahiert

Wenn mein Datenrahmen ist

enter image description here

Ich mag 2.5 von 1 Spalte subtrahieren, so dass es scheint, als

enter image description here

Auch ist es möglich, Datum zu konvertieren + Zeit in Protokoll?

Vielen Dank!

+1

Ich denke, du hast deine Bilder zurück. Was hast du auch versucht? – miradulo

+0

Um Konstantenwert zu subtrahieren, tat ich df = df (Verschiebung, Achse = 'Abstand) , aber es gab mir ungültige Syntax – Sharon

+0

Haben Sie gelesen, was 'df' tut? Sie wollen entweder ['Series.' '(https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.html) oder nur' df [' some_column '] - some_constant'. Vielleicht möchten Sie die Pandas-Dokumente lesen (https://pandas.pydata.org/pandas-docs/stable/10min.html). – miradulo

Antwort

-2

.apply verwendet, ist immer eine schnelle Art und Weise so etwas wie dieses

#data.csv is you data 
import pandas as pd 
df = pd.DataFrame.read_csv('data.csv') 

#you want to perform this operation on column 1 that has a label 'A' 
#make a function 
def col_subtract(row): 
    row['A'] = row['A'] - 2.5 
    return row 

#apply the function to the dataframe 
df = df.apply(col_subtract, axis=1) 

doc

Notiz zu handhaben: Sie könnte es auch nur eine Lambda-Funktion übergeben, ich fühlte es sauberer war ein zu machen formale benutzerdefinierte Funktion mit einem Namen, um zu betonen, was Sie tun.

+1

__Nein! __. 'Apply' ist immer der _slow_ Weg, um so etwas zu handhaben. Es macht in diesem Zusammenhang nicht einmal Sinn, Sie machen die vektorisierte Operation sowieso innerhalb des 'apply'. – miradulo

+0

Ich habe gerade Tiefe = df ['Entfernung'] - 62.981 verwendet. Dann fügen Sie die Tiefenspalte an der Vorderseite der Tabelle hinzu: df.insert (0, 'Depth', depth) Danke! Auch irgendeine Idee über die Zeit Manipulation zu Minute? – Sharon

0

Wenn df Ihre Datenrahmen ist, verwenden Sie einfach

df.Distance += 2.5 

für eine konstante Zugabe oder

df.Distance -= 2.5 

für sie abzieht.

(Ich bin mir nicht sicher, welche von denen Sie tun möchten.)

Verwandte Themen