Итак, я хотел бы знать, как я могу разделить столбец с условиями.Моя идея - изучить активность пользователя, но для этого мне нужно поставить условие.У меня есть датафрейм:
df = pd.DataFrame({'User': ["juan","juan","juan","juan","petter","petter","petter","petter","petter","petter","petter","petter","ana","ana","ana","ana","raul","raul","raul","raul"],
'time': ["2/1/2019","3/1/2019","4/1/2019","6/1/2019","2/1/2019","5/1/2019","6/1/2019","10/1/2019","11/1/2019","12/1/2019","13/1/2019","14/1/2019","8/1/2019","10/1/2019","15/1/2019","20/1/2019","15/1/2019","17/1/2019","18/1/2019","19/1/2019"],
'activity': ["fly", "hotel","car","jump","fly", "hotel","jump","car","fly", "car","hotel","car","car", "hotl","car","hotel","fly", "hotel","car","car"],
'%timeper_user': ["4 days","4 days","4 days","4 days","8 days","8 days","8 days","8 days","3 days","3 days","3 days","3 days","12 days","12 days","12 days","12 days","4 days","4 days","4 days","4 days"]})
, как вы увидите, у каждого пользователя есть столбец (время) и еще один столбец (% timeper_user) для каждого пользователя.затем столбец (активность), который представляет собой действие, которое каждый пользователь выполняет в течение определенного периода времени.Идея состоит в том, чтобы сделать «условное разделение», которое будет происходить с каждым действием в отдельном столбце.Act1, Акт 2, ACT3, ACT3.Но когда пользователь выполняет действие вне времени (время +% timeper_user), поместите действия в разные столбцы, такие как: Act21, Act 22, Act 23, Act24. Мне бы хотелось, чтобы это было так:
df2 = pd.DataFrame({'User': ["juan","petter","ana","raul"],
"act1":["fly","fly","car","fly"],
"act2":["hotel","hotel","hotel","hotel"],
"act3":["car","jump","car","car"],
"act4":["jump","car","hotel","car"],
"actn":["","","",""],
"act21":["","fly","",""],
"act22":["","car","",""],
"act23":["","hotel","",""],
"act24":["","car","",""]})
(DF2) - это вывод, что то, что я хочу. Увидеть, что пользователь Petter превысил время (02.02.2017 + 8 дней) = 01.10.2009.Таким образом, с 01.11.2009 действия помещены в Act21, Act22, Act23, Act24.У меня много пользователей, поэтому я не знаю, как сделать функцию, которая выполняет это и берет все (пользователь за пользователем).если бы вы могли мне помочь, я был бы очень признателен.Спасибо