Einstellen der Zeitzone für Zeitstempeldaten in pandas dataframe

Ich habe einen sich häufig ändernden Pandadatenrahmen mit folgenden Daten:

         date name  time       timezone
0  2016-08-01  aaa  0900     Asia/Tokyo
1  2016-08-04  bbb  1200  Europe/Berlin
2  2016-08-05  ccc  1400  Europe/London

Datum, Uhrzeit und Zeitzone beziehen sich auf ein Lieferdatum, das häufig für einen ausländischen Standort gilt, wobei der Name der Name des Kundenunternehmens ist.

Es ist geplant, diese Daten zu übernehmen und ein @ zu erstelledatetime_local -Spalte mit der in @ angezeigten Zeitzotimezone Spalte des Datenrahmens. Dann möchte ich eine Spalte hinzufügendatetime_london das das Datum und die Uhrzeit enthält, aber in Bezug auf die Uhrzeit und das Datum in London ausgedrückt wird.

Ich habe den größten Teil des Weges dorthin, aber beim Anrufentz_localize Ich lande mit einemValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all() was mir nahe legt, dass ich die Spalte mit der Zeitzone nicht richtig behandle.

Haben Sie Vorschläge, wie Sie vorgehen sollen?

mydf = pd.DataFrame(data={'date':['2016-08-01','2016-08-04','2016-08-05'],
                          'time':['0900','1200','1400'],
                          'timezone':['Asia/Tokyo','Europe/Berlin','Europe/London'],
                          'name':['aaa','bbb','ccc']}
)
print(mydf)
mydf["datetime"] = mydf["date"].map(str) + " " + mydf["time"]
mydf.datetime = pd.to_datetime(mydf.datetime)
mydf.index = mydf.datetime
print(mydf)
mydf["datetime_local"] = mydf.datetime
mydf.datetime_local.tz_localize(mydf.timezone)

Antworten auf die Frage(6)

Ihre Antwort auf die Frage