I can compile it. However, when I input my date and time I get the error. Below is the code in question regarding this issue. error code: TypeError: '<=' not supported between instances of 'Timestamp' and 'str'.
class evaluation(): def __init__(self, data): self.data = data self.data['Date'] = pd.to_datetime(self.data['Date']) # Will receive 'actual' datetime from df, and user defined 'start' and 'stop' datetimes. def in_range(self, actual, start, stop): return start <= actual <= stop def evaluate(self): user_start = pd.to_datetime(input("Enter your start date (yyyy-mm-dd hour:min:second): ")) user_stop = pd.to_datetime(input("Enter your end date (yyyy-mm-dd hour:min:second): ")) # creates series of True or False selecting proper rows. print(self.data['Date'].dtype) mask = self.data['Date'].apply(self.in_range, args=(user_start, user_stop)) # Do the groupby and sum on only those rows. montant_init = self.data.loc[mask].groupby("Initiateur")["Montant (centimes)"].sum() print(montant_init) traceback error:
Traceback (most recent call last): File "C:\Users\DELL\PycharmProjects\vps_project\main.py", line 31, in <module> init_evalobj.evaluations() File "C:\Users\DELL\PycharmProjects\vps_project\main.py", line 24, in evaluations self.evaluate() File "C:\Users\DELL\PycharmProjects\vps_project\evaluation.py", line 20, in evaluate mask = self.data['Date'].apply(self.in_range, args=(user_start, user_stop)) File "C:\Users\DELL\PycharmProjects\vps_project\venv\lib\site-packages\pandas\core\series.py", line 4138, in apply mapped = lib.map_infer(values, f, convert=convert_dtype) File "pandas\_libs\lib.pyx", line 2467, in pandas._libs.lib.map_infer File "C:\Users\DELL\PycharmProjects\vps_project\venv\lib\site-packages\pandas\core\series.py", line 4123, in f return func(x, *args, **kwds) File "C:\Users\DELL\PycharmProjects\vps_project\evaluation.py", line 13, in in_range return start <= actual <= stop TypeError: '<=' not supported between instances of 'Timestamp' and 'str' Process finished with exit code 1 output: Enter your start date (yyyy-mm-dd hour:min:second): 2021.06.06 11:00:00 Enter your end date (yyyy-mm-dd hour:min:second): 2021.06.06 12:00:00 object + traceback error thanks
print(self.data['Date'])if you put it right abovemask = self.data['Date'].apply...?self.data['Date'].dtype?