У меня было три набора данных, которые я объединил в соответствии с некоторыми ключами, и я упорядочил «Время регистрации» и «Время отправки» в порядке возрастания. Затем я применил groupby для группировки их по "contestid" и "userhandle". Я также должен был подсчитать количество решателей, которые участвовали в конкурсе перед текущим решателем, я также написал строку для этого, но
Теперь мне нужно создать новый столбец с именем priorperformanceofsolver
(выступление в недавно завершившемся конкурсе (количество заявок текущего решателя в последнем завершенном конкурсе).
Моя цель состоит в том, чтобы - в каждой группе, организованной в соответствии с Competition_id, должны быть «пользовательские маркеры» или люди, которые участвовали в конкурсе, в порядке возрастания их даты и времени прибытия в конкурс, чтобы я считал, кто пришел после того, как кто в конкурсе наконец хочет создать новую колонку под названием priorperformanceofsolver для сохранения предыдущего исполнения
Мне жаль, что это так долго, но я действительно не могу понять, прав я или нет, и я не могу понять, как сделать столбец priorperformanceofsolver.
Мне нужно искать каждое соревнование для каждого пользовательского дескриптора и находить каждое соревнование, в котором они участвовали, и какие из этих дат соревнования были самыми последними, и каков был их счет в этом недавнем соревновании, и хранить в столбце под названием «priorperformanceofsolver», который имеет чтобы указать счет на последнем конкурсе, в котором они участвовали. Пожалуйста, помогите мне, я застрял или, если есть трудности с чтением этого сверхдлинного вопроса, пожалуйста, прокомментируйте, но помогите мне, если это возможно. Я очень плохо знаком с Python
'' '
dftotal.groupby(["contestID", "userHandle"])
dftotal["registerDateTime"] = pd.to_datetime(dftotal.registerDateTime,
utc=True)
dftotal["RegistrationDateTime"] = dftotal["registerDateTime"]
dftotal["submitDateTime"] = pd.to_datetime(dftotal.submitDateTime, utc
=True)
dftotal["SubmissionDateTime"] = dftotal["submitDateTime"]
dftotal.sort_values(by=['RegistrationDateTime'])
dftotal.sort_values(by = ["SubmissionDateTime"])
dftotal['priorcountofentrants'] =
dftotal.groupby(['contestID']).cumcount()
'' '
Data -
contstID userHndle RegistrtnDteTime SubmssnDtTme priorcntofentrnts finalScore
6638 holo 2012-01-0921:45:20 2012-03-1020:45:20 0 100
6638 kolo 2012-01-0922:45:20 2012-03-1023:45:20 1 50
8878 holo 2011-01-0921:45:20 2011-01-1020:45:20 0 100
8878 kolo 2011-01-0922:45:20 2011-01-1023:45:20 1 100
expected -
contstID userHndle RegstrtnDteTme SubmsnDtTm prircntofentrnts finalScore
priorperformce
6638 holo 2012-01-0921:45:20 2012-01-1020:45:20 0 100 100
6638 kolo 2012-01-0922:45:20 2012-01-1023:45:20 0 50 100
так что здесь у коло и холо их счет из предыдущего конкурса (недавно завершенная с указанием даты) отображается рядом с их именем, то есть из конкурса 8878 они набрали 100 и 50 баллов, поэтому он отображается рядом с их именем в новом конкурсе 6638, тогда это происходит аналогично на конкурс 8878, где он должен искать предшествующее исполнение решателя