TypeError: Cannot compare Typ 'Timestamp' mit Typ 'Datum'
Das problem ist in line 22 :
if start_date <= data_entries.iloc[j, 1] <= end_date:
wo ich vergleichen wollen start_date
und end_date
Teil data_entries.iloc[j, 1]
ist der Zugriff auf eine Spalte der pandas dataframe. Ich konvertiert die Spalte datetime Verwendung,
data_entries['VOUCHER DATE'] = pd.to_datetime(data_entries['VOUCHER DATE'], format="%m/%d/%Y")
Aber ich bin nicht sicher, wie es zu konvertieren, um Datum.
import pandas as pd
import datetime
entries_csv = "C:\\Users\\Pops\\Desktop\\Entries.csv"
data_entries = pd.read_csv(entries_csv)
data_entries['VOUCHER DATE'] = pd.to_datetime(data_entries['VOUCHER DATE'], format="%m/%d/%Y")
start_date = datetime.date(2018, 4, 1)
end_date = datetime.date(2018, 10, 30)
for j in range(0, len(data_entries)):
if start_date <= data_entries.iloc[j, 1] <= end_date:
print('Hello')
- geben Sie bitte mcve.
- Überprüfen Sie diese. docs.python.org/2/library/...
- Ich meinte vorhin eigentlich. Mein problem ist das
pd.to_datetime()
des pandas. Ich glaube, es gibt keinepd.to_date()
entspricht. Der link unten nur konvertiert einen datetime-Wert, aber basierend auf meinem code funktioniert es nicht mitdatetime.date()
wenn Sie versuchen, Sie zu vergleichen. stackoverflow.com/questions/16852911/... - Sie konnte
data_entries['VOUCHER DATE'] = pd.to_datetime(data_entries['VOUCHER DATE'], format="%m/%d/%Y").dt.date
- Es ist pandas version Verwandtes problem, können Sie überprüfen, dieser.
- es funktioniert Dank
- werde das prüfen, danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
dieser wandelt es um das Datum:
allerdings würde ich nicht empfehlen, filtern wie diese.
dies ist viel schneller
Lesen Sie diese Artikel
Verwenden Sie einfach
pd.Timestamp
Objekte ohne Konvertierung:Erklärung
Nicht verwenden
datetime.datetime
oderdatetime.date
Objekte in der Pandas-Serie. Dies ist ineffizient, denn Sie verlieren vektorisierte Funktionen. Der Vorteil derpd.Timestamp
Objekte, die Sie nutzen können, vektorisierte Funktionen, die für Berechnungen. Wie beschrieben hier:df[df['time'].between(pd.Timestamp('2013-01-01'), pd.Timestamp('2013-02-01'))]
werfenTypeError: Cannot compare type 'Timestamp' with type 'date'
. Mein df[Zeit] istto_datetime
Objektpd.to_datetime(..).dt.date
pd.to_datetime(..).dt.date
statt einfachpd.to_datetime(..)