from timezonefinder import TimezoneFinder
import pandas as pd
tf = TimezoneFinder()
df = pd.DataFrame({'latitude': [-22.540556,-22.950556,-22.967778], 'longitude': [-43.149167,-43.230833,-43.234444], 'timezone': [0,0,0]})
TimeZone = tf.timezone_at(lng=df['longitude'], lat=df['latitude'])
df['timezone'].apply(TimeZone)
print(df)
Hallo, neu zu Python und kämpfen, um TimeZoneFinder für mich arbeiten zu lassen. Ich möchte timezone_at() auf die TimeZone-Spalte basierend auf Geolocations aus 2 anderen Spalten anwenden. Irgendwelche Tipps, wie das funktioniert?Anwenden der TimeZoneFinder-Funktion auf einem Pandas DataFrame
Fehler:
Traceback (most recent call last):
File "C:/Users/mhembree/PycharmProjects/Python/Test Column Add.py", line 17, in <module>
TimeZone = tf.timezone_at(lng=df['longitude'], lat=df['latitude'])
File "C:\Program Files (x86)\Python 3.5\lib\site-packages\timezonefinder\functional.py", line 27, in wrapper
return func(*args, **kwargs)
File "C:\Program Files (x86)\Python 3.5\lib\site-packages\timezonefinder\timezonefinder.py", line 483, in timezone_at
if lng > 180.0 or lng < -180.0 or lat > 90.0 or lat < -90.0:
File "C:\Program Files (x86)\Python 3.5\lib\site-packages\pandas\core\generic.py", line 955, in __nonzero__
.format(self.__class__.__name__))
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Ihre geografische Breite und Länge sind Arrays keine Einzelwerte. Es scheint, dass Sie drei separate Koordinaten in Ihren Daten haben. Warum? –
Danke für die Antwort, der Anwendungsfall ist, dass ich eine Tabelle von Standorten mit lat und lang habe. Ich möchte die Zeitzone Spalte mit einer Funktion füllen. Breitengrad Längengrad Zeitzone -22.540556 -43.149167 0-15.230833 0 -22.967778 -43.234444 0 Ich weiß, dass das, was ich wahrscheinlich an die Funktion übergebe, eine Kette von Koordinaten ist, die als 1 Wert betrachtet wird und meinen Fehler verursacht. Muss ich eine Schleife verwenden und durch jede Zeile iterieren oder ist es möglich, apply() zu verwenden? – user4462287
Bearbeitet Ihre Frage um Pandas und Dataframe zu taggen. Ich bin kein Experte in diesem Bereich, also werde ich jemand anderen diese Frage beantworten lassen, oder Sie können es selbst beantworten, wenn Sie es herausfinden. [Dieses Tutorial] (https://chrisalbon.com/python/pandas_apply_operations_to_dataframes.html) scheint anzuzeigen, dass Sie die Funktion nicht mit der richtigen Syntax definieren. –