У меня есть данные о входе пользователей в мою систему за последние несколько лет.Я хочу выполнить анализ по удалению пользователей из моей системы за последние три месяца.
У меня есть три условия
A (All) = All Accepted(Activated) users as of August 31st
N (new) = Accepted users in last three months (Jun, July, Aug)
R (returning) = Accepted before June, but logged in last three months i.e. (Jun, July, Aug)
D = Dropping
Отбрасывание = A - N - R
Данные выглядят так - https://pastebin.com/Ybu9KWqk
Я хочу отфильтровать данные по категориям N и R, сохранить в CSV и получить значение D.
Я написал эту логику для этого,
df = pd.read_csv("work_hrs.csv")
from datetime import datetime
import pdb
new_col = []
threshold_act_date = datetime.strptime("2019-6-01", '%Y-%m-%d').date()
threshold_log_date = datetime.strptime("2019-8-21", '%Y-%m-%d').date()
for row in df.iloc[:,[2,3]].values:
try:
last_log = datetime.strptime(row[0][:10], '%Y-%m-%d').date()
active_in = datetime.strptime(row[1][:10], '%Y-%m-%d').date()
if last_log >= threshold_log_date:
if active_in >= threshold_act_date:
new_col.append("N")
else:
new_col.append("R")
else:
new_col.append("D")
except:
new_col.append("not_active")
total_came = len(df) - Counter(df["status"])["unregistered"] - Counter(df["status"])["notregister"] - Counter(df["status"])["nan"]
print("Total come to our platform so far :", total_came)
dropout = total_came - Counter(df["new_stat"])["N"] - Counter(df["new_stat"])["R"]
print("The total no. of dropouts are :",dropout)
Правильно ли приведенный выше код фильтрует даты по категориям N и R?
Ожидаемый результат:
1. D which will give count of dropouts from the system in last three months
2. CSV file which contains All new (N) users in last 3 months
3. CSV file which contains all returning (R) users in last three months