Python熊猫:获取组的第一个值

朱利安

我有一个这样记录的诊断列表:

df = pd.DataFrame({
    "DiagnosisTime": ["2017-01-01 08:23:00", "2017-01-01 08:23:00", "2017-01-01 08:23:03", "2017-01-01 08:27:00", "2019-12-31 20:19:39", "2019-12-31 20:19:39"],
    "ID": [1,1,1,1,2,2]
})

在此处输入图片说明

可以识别多个主题ID对于每个受试者,可能会有一个或多个诊断。每个诊断都可以包含多个条目(因为要对多个事物进行重新记录(在此示例中未列出))。

单个诊断(具有多行)可以(在某种程度上)由识别DiagnosisTime但是,有时一种诊断的数据写入过程中会有一点延迟,因此我希望在按分组时允许几秒钟的较小容差DiagnosisTime

在此示例中,我希望得到如下结果:

在此处输入图片说明

对于ID1:行0、1、2和第3行有两种诊断。请注意DiagnosisTime,第2行与0和1略有不同ID。2由1行4和5组成的诊断组成。

对于每个ID我想将计数器设置回1(如果更简单,则设置为0)。

这是我走了多远:

df["DiagnosisTime"] = pd.to_datetime(df["DiagnosisTime"])
df["diagnosis_number"] = df.groupby([pd.Grouper(freq='5S', key="DiagnosisTime"), 'ID']).ngroup()

在此处输入图片说明

我认为我成功地在一个诊断程序中找到了诊断信息ID(对石斑鱼并不完全确定),但是我不知道如何重置计数器。

如果不可能,那么我也将对一个函数感到满意,该函数返回该组ID中具有最低记录的所有记录diagnosis_number

耶斯列尔

您可以使用GroupBy.transform添加lambda函数factorize

df["diagnosis_number"] = (df.groupby('ID')['diagnosis_number']
                             .transform(lambda x: pd.factorize(x)[0]) + 1)
print (df)
        DiagnosisTime  ID  diagnosis_number
0 2017-01-01 08:23:00   1                 1
1 2017-01-01 08:23:00   1                 1
2 2017-01-01 08:23:03   1                 1
3 2017-01-01 08:27:00   1                 2
4 2019-12-31 20:19:39   2                 1
5 2019-12-31 20:19:39   2                 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python-熊猫:按组选择第一个观察值

来自分类Dev

熊猫:与组中第一个元素的区别

来自分类Dev

获取(Spark 1.6)组中的第一个非空值

来自分类Dev

在Azure流分析查询中,如何获取组的第一个值?

来自分类Dev

如何确定 First 的使用范围以仅获取组中的第一个值?

来自分类Dev

获取带有偏移索引的熊猫数据框中的列的第一个值

来自分类Dev

捕获RegEx组的第一个值

来自分类Dev

SSRS如何获取矩阵行组的第一个和最后一个值?

来自分类Dev

熊猫时间序列-在每年的第一个值中添加一个值

来自分类Dev

熊猫将组分为第一个值和最后一个值

来自分类Dev

获取第一个对象属性的值

来自分类Dev

Batch For循环获取第一个值

来自分类Dev

从Args [1]获取第一个单词的值

来自分类Dev

从参数获取先前的第一个值

来自分类Dev

jQuery获取第一个td值

来自分类Dev

SQL:获取GroupBY子句的第一个值

来自分类Dev

JS for循环如何获取第一个值

来自分类Dev

获取数组的第一个值

来自分类Dev

从std :: cin只获取第一个值

来自分类Dev

如何使用r中“下一个”组的第一个值?

来自分类Dev

多个第一个和最后一个非NA值(按组)

来自分类Dev

按组查找第一个/最后一个观察值?

来自分类Dev

MySQL按concat值分组,并在每个组中获取第一个ID(UUID)

来自分类Dev

如何在python字典中获取第一个值

来自分类Dev

如何在Python中获取第一个键值对的值

来自分类Dev

如何在Python中以具体方式从键列表中获取第一个值?

来自分类Dev

如何在变量中获取python字典的第一个项目值

来自分类Dev

Python Pandas - 获取满足条件的第一个值

来自分类Dev

将下一个值移动到第一个空行熊猫

Related 相关文章

热门标签

归档