2016-04-21 3 views
0

Ich habe einen Datenrahmen, den ich aus dem Ziehen von Daten aus SQL mit pd.read_sql_query() konstruiert. Ich habe eine Spalte, die Daten hat, aber im allgemeinen Zahlenformat. Wie wandle ich diese Spalte in ein Datetime-Objekt um.Konvertieren Pandas Dataframe Spalte mit Excel allgemeinen Zahlen in Datetime-Objekt

Ich kann einen Wert mit der Xlrd-Bibliothek konvertieren, aber auf der Suche nach dem besten Weg, um die gesamte Spalte zu konvertieren. datetime_value = Datetime (* xlrd.xldate_as_tuple (42369, 0))

Antwort

0

Sie können map verwenden, um eine Lambda-Funktion durchführt, dass der Betrieb zu jedem Eintrag in einer Spalte gelten:

import pandas as pd 
import xlrd 
from datetime import datetime 

# Create dummy dataframe 
df = pd.DataFrame({ 
    "date": [42369, 42370, 42371, 42372] 
    }) 
print df.to_string() 

# Convert values into a new column named "converted" 
df["converted"] = df["date"].map(lambda x: datetime(*xlrd.xldate_as_tuple(x, 0))) 
print df.to_string() 

Vor der Umstellung:

date 
0 42369 
1 42370 
2 42371 
3 42372 

Nach:

date converted 
0 42369 2015-12-31 
1 42370 2016-01-01 
2 42371 2016-01-02 
3 42372 2016-01-03 

Ist das wonach Sie suchen?

Update:

Um diese Arbeit mit String-Eingaben zu machen, könnten Sie entweder Pandas sagen die Spalte als ints zu behandeln oder schwimmt:

# int 
df["converted"] = df["date"].astype(int).map(lambda x: datetime(*xlrd.xldate_as_tuple(x, 0))) 
# float 
df["converted"] = df["date"].astype(float).map(lambda x: datetime(*xlrd.xldate_as_tuple(x, 0))) 

oder werfen nur x innerhalb int oder float die Lambda-Funktion:

# int 
df["converted"] = df["date"].map(lambda x: datetime(*xlrd.xldate_as_tuple(int(x), 0))) 
# float 
df["converted"] = df["date"].map(lambda x: datetime(*xlrd.xldate_as_tuple(float(x), 0))) 
+0

Danke, das ist, was ich suchte, aber meine Dataframe-Spalte wird als Zeichenfolge gespeichert. Wie konvertiere ich die Spalte in Interners oder Floats – Obabs

+0

@Obabs, siehe meine aktualisierte Antwort – Plasma

Verwandte Themen