【发布时间】:2019-05-19 11:03:25
【问题描述】:
我有一个长格式的 pandas 数据框,其中包含一些人的多个条目。我有一个变量表示自另一次单独评估(评估 A)以来的一次测量时间。我想做的是创建一个新变量来标识每个评估相对于评估 A 的时间点,并将每个人的第一个时间点(如果它
我确定答案涉及 groupby。我可以按每个人的代码进行分组,但我很困惑如何从那里开始。
我一直试图遵循的逻辑是: - groupby ID_Code - 对于每个 ID_Code,测试第一行“自评估 A 以来的时间”是否
如果不清楚,我可以提供更多信息。我对使用 python 清理数据很陌生,这是我的第一个 stackoverflow 问题,所以我愿意接受任何提示!
提前致谢。
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)
【问题讨论】:
标签: python pandas pandas-groupby