У меня есть длинный формат данных pandas, который включает несколько записей для некоторых людей.У меня есть переменная, которая указывает одно время измерений после другой отдельной оценки (оценка A).Что я хотел бы сделать, это создать новую переменную, которая идентифицирует момент времени каждой оценки относительно оценки A, и назначить первый момент времени каждого человека (если это <= 10 дней оценки A) в качестве момента времени 1, затемих последующие измерения как 2, 3, 4 и т. д. независимо от времени, прошедшего с момента оценки A. Если у них нет оценки <= 10 дней оценки A, то я бы хотел, чтобы все записи для этого человека были NA. </p>
Я уверен, что ответ касается группового.Я могу группировать код каждого человека, но я довольно застрял в том, как действовать дальше.
Логика, которой я пытался следовать, такова: - groupby ID_Code - для каждого ID_Code проверьтепервая строка 'время с момента оценки A' <= 10 - если истина, первая строка = 1 во временной точке И назначьте следующие строки этого идентификатора ID_Code 2, 3, 4 и т. д. - в противном случае назначьте все строки для этого кода ID_Code как NA </p>
Я могу предоставить больше информации, если неясно.Я совершенно новичок в очистке своих данных с помощью Python, и это мой первый вопрос о стекопереработке, поэтому я открыт для любых советов!
Заранее спасибо.
import pandas as pd
# Current data
df = pd.DataFrame(data={'ID_Code':['AA_01', 'AA_01', 'BB_02', 'CC_03', 'CC_03', 'CC_03', 'CC_03', 'DD_05', 'DD_05'],
'Time_since_A':[0, 134, 0, 7, 145, 289, 312, 500, 650]})
print(df)
# Intended output
df2 = pd.DataFrame(data={'ID_Code':['AA_01', 'AA_01', 'BB_02', 'CC_03', 'CC_03', 'CC_03', 'CC_03', 'DD_05', 'DD_05'],
'Time_since_A':[0, 134, 0, 7, 145, 289, 312, 500, 650],
'Timepoint':[1, 2, 1, 1, 2, 3, 4, 'NA', 'NA']})
print(df2)