如何计算熊猫数据框中匹配的行组数?

乔治·刘

我已经连续两天把我的头撞在墙上了。有了一些想法,尝试实施,但是速度非常慢,所以想知道是否有人可以指出一种更好的方法。这就是我想要的:

我有一个这样的数据框:

pd.DataFrame({'var1':[1, 1, 4, 4, 4, 7, 8], 'var2': [2, 2, 5, 5, 5, 8, 8], 'var3':[3, 3, 6, 6, 6, 9, 8], 'label':['a', 'a', 'b', 'b', 'c', 'd', 'd']})

    label     var1    var2    var3
 0    a         1       2       3
 1    a         1       2       3
 2    b         4       5       6
 3    b         4       5       6
 4    c         4       5       6
 5    d         7       8       9
 6    d         8       8       8

因此,我要计算的是给定重复变量的匹配标签的百分比。例如,第0行,第1行是基于var1,var2和var3的重复项,第2行,第3行和第4行也是如此,而由于var3的值不同,第5行和第6行不是重复项。在两个重复的组中,如果我们检查标签,我们会看到组1(行0、1)的标签也匹配('a','a'),而组2(行2、3、4)不匹配匹配(“ b”,“ b”,“ c”)。因此,该百分比为1/2 = 50%。

目前,这是我正在做的:

  1. 使用var1,var2,var3对数据帧进行排序
  2. 遍历行并记录与下一行不重复的行的索引
  3. 使用上一个索引对数据帧进行切片,以仅保留具有重复项的行。每组重复的行都是一个组。计算组总数。
  4. 在新数据框中,检查每个组的标签列,如果所有标签都在一个组中匹配,则将其视为匹配组。
  5. 使用匹配的组数来划分组总数。

任何帮助表示赞赏!

使用groupby方法:

def matched_group(grp):
    if len(grp) == 1:
        return np.nan    
    return grp.nunique() == 1

is_matched = df.groupby(['var1', 'var2', 'var3'])['label'].apply(matched_group).dropna()
match_pcnt = is_matched.sum()/len(is_matched)

matched_group函数返回一个布尔值,指示一组变量中的所有标签是否都是唯一的,或者np.nan该组变量只有一个元素,表示该组不重复。然后,在删除空值之后,只需计算匹配项,然后除以重复组的总数即可。

上面的代码给出了0.5for的值match_pcnt

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫数据框组中的计算

来自分类Dev

计算熊猫数据框中的匹配组合

来自分类Dev

如何计算熊猫数据框中连续行之间的差异?

来自分类Dev

如何计算熊猫数据框中的重复行?

来自分类Dev

如何计算熊猫数据框中的值

来自分类Dev

如何为熊猫数据框中的一组行分配组号?

来自分类Dev

熊猫多索引数据框中的组之间的计算

来自分类Dev

如何计算熊猫数据框中子组中项目的成对出现?

来自分类Dev

如何针对某些组/数据删除熊猫数据框中的行(数据)?

来自分类Dev

如何在多索引熊猫数据框中按组更新前N行中的值?

来自分类Dev

熊猫数据框的组内计算

来自分类Dev

熊猫数据框的组内计算

来自分类Dev

如何从熊猫数据框中绘制不同的组

来自分类Dev

在熊猫数据框中按行计算质心

来自分类Dev

如何计算熊猫中重新采样的多索引数据框

来自分类Dev

如何计算熊猫数据框中列值更改的频率?

来自分类Dev

如何使用熊猫计算数据框中的单词?

来自分类Dev

如何递增计算熊猫数据框中的每个不同值

来自分类Dev

如何计算熊猫数据框中列值更改的频率

来自分类Dev

如何在熊猫数据框中成对计算关联

来自分类Dev

如何计算熊猫中重新采样的多索引数据框

来自分类Dev

如何计算熊猫数据框中条件元素之间的变化

来自分类Dev

在熊猫数据框中,如何根据满足不同条件的开始行和结束行过滤一组行?

来自分类Dev

计算熊猫数据框中的路径数据

来自分类Dev

汇总熊猫数据框中的列组

来自分类Dev

如何在熊猫数据框中仅获取具有给定值(或一组值)的行*和仅*列

来自分类Dev

如何更改熊猫中数据框行的数据类型?

来自分类Dev

如何使用熊猫根据组中的数据减去列的行?

来自分类Dev

如何在使用lambda的计算函数中输入变化的列数并应用于熊猫的数据框中?

Related 相关文章

  1. 1

    熊猫数据框组中的计算

  2. 2

    计算熊猫数据框中的匹配组合

  3. 3

    如何计算熊猫数据框中连续行之间的差异?

  4. 4

    如何计算熊猫数据框中的重复行?

  5. 5

    如何计算熊猫数据框中的值

  6. 6

    如何为熊猫数据框中的一组行分配组号?

  7. 7

    熊猫多索引数据框中的组之间的计算

  8. 8

    如何计算熊猫数据框中子组中项目的成对出现?

  9. 9

    如何针对某些组/数据删除熊猫数据框中的行(数据)?

  10. 10

    如何在多索引熊猫数据框中按组更新前N行中的值?

  11. 11

    熊猫数据框的组内计算

  12. 12

    熊猫数据框的组内计算

  13. 13

    如何从熊猫数据框中绘制不同的组

  14. 14

    在熊猫数据框中按行计算质心

  15. 15

    如何计算熊猫中重新采样的多索引数据框

  16. 16

    如何计算熊猫数据框中列值更改的频率?

  17. 17

    如何使用熊猫计算数据框中的单词?

  18. 18

    如何递增计算熊猫数据框中的每个不同值

  19. 19

    如何计算熊猫数据框中列值更改的频率

  20. 20

    如何在熊猫数据框中成对计算关联

  21. 21

    如何计算熊猫中重新采样的多索引数据框

  22. 22

    如何计算熊猫数据框中条件元素之间的变化

  23. 23

    在熊猫数据框中,如何根据满足不同条件的开始行和结束行过滤一组行?

  24. 24

    计算熊猫数据框中的路径数据

  25. 25

    汇总熊猫数据框中的列组

  26. 26

    如何在熊猫数据框中仅获取具有给定值(或一组值)的行*和仅*列

  27. 27

    如何更改熊猫中数据框行的数据类型?

  28. 28

    如何使用熊猫根据组中的数据减去列的行?

  29. 29

    如何在使用lambda的计算函数中输入变化的列数并应用于熊猫的数据框中?

热门标签

归档