0

i have a probleme

for i in range(len(member_KPIs)) : 
    member_id = member_KPIs.loc[i,"ID_SAFAR"]

#member_activity['ACTIVITY_DATE'] = pd.to_numeric(member_activity['ACTIVITY_DATE'])

#print(member_id)
member_id_filter = member_activity["MEMBER_ID"] == member_id
filtered_members_activity = member_activity[member_id_filter]

max_activity_date = max(filtered_members_activity["ACTIVITY_DATE"])

member_KPIs.at[i,'LAST_TRAVEL_DATE'] = max_activity_date
DirtyBit
  • 16,613
  • 4
  • 34
  • 55
doha
  • 1
  • 1
  • On which line it throws the error? – Amir Shabani Apr 16 '19 at 13:06
  • in this line ...............................................................................................max_activity_date = max(filtered_members_activity["ACTIVITY_DATE"]) member_KPIs.at[i,'LAST_TRAVEL_DATE'] = max_activity_date – doha Apr 16 '19 at 14:55

1 Answers1

0

I assume you have the error on this line:

max_activity_date = max(filtered_members_activity["ACTIVITY_DATE"])

It seems like you're trying to give a list of strings to the max() function, which will not work; max() expects numbers (i.e. floats), not date strings. If you need to compare these dates, you can try just converting them to timestamps:

import time, datetime #required for timestamp conversion
#quick and dirty list comprehension
max_activity_date = max([time.mktime(datetime.datetime.strptime(s, "%d/%m/%Y").timetuple()) for s in filtered_members_activity["ACTIVITY_DATE"])

Here are some answers on getting a timestamp from the date.

joedeandev
  • 626
  • 1
  • 6
  • 15