2016-07-07 17 views
1

Ich brauchePandas: Zuwachs Datetime

buys['date_min'] = (buys['date'] - MonthDelta(1)) 
buys['date_min'] = (buys['date'] + timedelta(days=5)) 

einige Aktionen mit date in df Spalte zu tun, aber es

TypeError: incompatible type [object] for a datetime/timedelta operation

zurückkehren Wie kann ich tun, um es zu Spalte?

+0

'type [object]' weist darauf hin, dass es zumindest einige Werte gibt, die keine Datumsangaben sind. – miraculixx

Antwort

3

Ich glaube, Sie müssen konvertieren ersten Spalte dateto_datetime, weil type od Werte in Spalte datestring ist:

buys['date_min'] = (pd.to_datetime(buys['date']) - MonthDelta(1)) 
buys['date_min'] = (pd.to_datetime(buys['date']) + timedelta(days=5)) 

EDIT:

Sie Parameter format-to_datetime müssen und dann eine andere Lösung mit to_timedelta

buys = pd.DataFrame({'date':['01.01.2016','20.02.2016']}) 
print (buys) 
     date 
0 01.01.2016 
1 20.02.2016 

buys['date']= pd.to_datetime(buys['date'],format='%d.%m.%Y') 
buys['date_min'] = buys['date'] + pd.to_timedelta(5,unit='d') 
print (buys) 
     date date_min 
0 2016-01-01 2016-01-06 
1 2016-02-20 2016-02-25 
+0

es Rückgabe Fehler 'TypeError: inkompatibler Typ [Objekt] für eine Datetime/Timedelta Operation'. Daten sind wie '01.01.2016, 20.02.2016' – ldevyataykina

+0

Ich füge Lösung hinzu, überprüfen Sie es bitte. – jezrael

+0

'AttributError: 'Modul' Objekt hat kein Attribut 'TimeDelta'' – ldevyataykina