Ich bin zwei Datenrahmen zuordnen, um zu überprüfen, ob ein Besuch passiert ist.Konvertieren einer Liste von Str von Datetime in Datum Uhrzeit
def visiter(d,visits):
visit = visits[d.start_date:d.end_date]
out = visit[(visit['user_id'] == d.user_id)&(visit['merchant_id']==d.merchant_id)].head(1) #only take the first visit
return (out.index.date.astype('str'))
data['visited_at']= data.apply(lambda x: str(visiter(x,visits)),axis =1)
Der Ausgang der obigen Spalte:
0 []
1 []
2 ['2017-04-24']
3 []
4 []
Name: visited_at, dtype: object
die Spalte pd.to_datetime(data.visited_at, errors = 'coerce')
Umwandeln NAT
die gesamte Spalte macht.
Gibt es irgendwelche Änderungen an dem Code konnte ich die Datetime im richtigen Format wie folgt erhalten: 2017-05-01 00:00:00
Edit1: Die Datenrahmen sieht wie folgt aus:
Index id user_id merchant_id marketing_email_id start_date end_date email_status sms_status created_at visited_at
0 68989 68990 13277 38 437 2016-04-11 00:00:00 2016-04-16 00:00:00 1 NaN 2016-04-11 11:05:31 []
1 403557 403558 195246 179 2218 2017-06-09 00:00:00 2017-06-12 00:00:00 0 1 2017-06-09 06:01:04 []
2 333381 333382 127359 514 1820 2017-04-24 00:00:00 2017-05-01 00:00:00 0 1 2017-04-24 10:00:33 ['2017-04-24']
3 511815 511816 151653 259 1136 2017-08-05 00:00:00 2017-08-08 00:00:00 0 1 2017-08-05 11:31:19 []
4 167172 167173 51546 32 363 2016-08-05 00:00:00 2016-08-15 00:00:00 1 NaN 2016-08-05 12:00:43 []
dies noch macht die gesamte Spalte NAT –
Was ist mit einem anderen Vorschlag? – jezrael
löst einen Fehler aus, da viele Listen leer sind –