熊猫数据框比较具有特定条件的多行

沃德·尼伯尔

我希望我能正确地解释我的问题。.我有一个数据框(306x40),其中包含包含特定组数据的多行,我需要按索引对它们进行分组,这没有问题。接下来,我需要将这些行与具有特定条件的另一行进行比较。以以下数据为例:

Id  Condition   var1   var2   var3
1      1         0      1      0
1      3         1      1      0
2      2         0      0      1
2      3         0      0      1
2      1         0      0      1

因此,我需要将每个Id的var1,var2,var3与具有条件3的行进行比较。结果会让我知道任何变量都不同于条件3中的变量。可能的输出:

Id  Condition   var1   var2   var3  count_false
1      1        false  true   true      1
1      3        NaN    NaN    NaN       NaN
2      2        true   true   true      0
2      3        NaN    NaN    NaN       NaN
2      1        true   true   true      0

或者只是简单地说条件x与y Id的条件3不同

我希望你们能理解我的需求,但我很乐于阐述

提前非常感谢您!

编辑以使其更清楚:

数据由来自3种不同方法的患者细菌检测数据(临床数据)组成,请注意,每位患者使用的方法和次数不同。所以我有方法1、2、3,这些是不同的条件。变量是发现的不同细菌。方法1和2是黄金标准,方法3是需要验证的标准。所以我想看看方法3是否给出与方法1或方法2相同的结果。30多个变量是细菌,值1表示存在细菌,而0不存在。

用户名

与所需(条件)行进行比较时,#x!= x.loc [i]为您提供每一行的真值。其余代码如下:

df=pd.DataFrame([[1,1,0,1,0],[1,3,1,1,0],[2,2, 0,0,1],[2,3, 0,0,1],[2,1, 0,0,1]],columns=['ID','Condition','var1','var2','var3'])
def comp(x):
    i=x.index[x['Condition']==3][0]
    #print(x!=x.loc[i])
    truth=(x[['var1','var2','var3']]==x.loc[i,['var1','var2','var3']])
    x=pd.concat([x[['ID','Condition']],truth],axis=1)
    return x
grp=df.groupby('ID').apply(comp)
grp['count_false']=grp[['var1','var2','var3']].apply(lambda x: 3-x.sum(),axis=1)
print(grp)

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在熊猫中具有特定条件的列名放入数据框单元格

如何在熊猫数据框中以特定条件分组

在熊猫中过滤基于特定条件的数据框

在特定条件下填充熊猫数据框列

特定条件下的熊猫数据框

满足特定条件的熊猫数据框正向填充

显示熊猫数据框中满足特定条件的所有单元格

大熊猫从具有特定条件的数据帧(分组)中删除重复项

在具有特定条件的熊猫中加入列

从其他数据框中选择具有特定条件的行

如何将字典列表转换为具有特定条件的数据框?

数据框将函数应用于具有特定条件的行

将嵌套的 JSON 转换为具有特定条件的 Pandas 数据框

从具有特定条件的行下的行创建数据框

如何在具有特定条件的数据框中添加值

在 SQL 中的多行中选择具有或不具有特定条件的组

具有基于特定条件的数据集的子集

计算具有特定条件的数据中的总 id

熊猫根据特定条件选择数据

具有多行时枢轴熊猫数据框

熊猫数据框具有相同索引的多行

尝试合并两个具有特定条件和R中行间距的数据框

Appy/lambda 将函数应用于其他列中具有特定条件的数据框

当列值符合特定条件时,在熊猫数据框的行中提取2列数据

在熊猫数据框中以特定条件删除其余数据

根据特定条件更新数据框

使新数据框满足特定条件

给定特定条件时,通过用户定义的函数在熊猫数据框的列中输入值

熊猫-根据特定条件查找数据框中是否存在值