熊猫系列与列表完全匹配

女巫王安格玛

我有一个形式的数据框:

      ID   |   COL
       1        A   
       1        B
       1        C
       1        D 
       2        A
       2        C
       2        D
       3        A
       3        B
       3        C 

我也有一个包含序列的列表列表,例如seq = [[A,B,C],[A,C,D]]

我正在尝试计算数据框中ID中与ID中的COL项完全匹配的ID数seq我目前正在通过以下方式进行操作:-

df.groupby('ID')['COL'].apply(lambda x: x.reset_index(drop = True).equals(pd.Series(vs))).reset_index()['COL'].count()

遍历vsvs清单从哪里来seq

预期产量:-

  ID | is_in_seq   
   1    0 
   2    1
   3    1 

由于COLfor ID1中的序列是ABCD,而不是in中的序列seq,因此其对应的值为0。

问题:-

1.)是否有矢量化的方法来执行此操作?我上面概述的方法即使对于中的单个条目也要花费很多时间seq,因为每个ID最多可以有30-40个值,并且保持顺序COL至关重要。

海盗

IIUC:
您只会产生零或一。因为您将检查整个组(只有一个整体)是否在中seq如果seq是唯一的(我假设是唯一的),那么您将永远只有这个群组seq

第一步是使seq一个settuples

seq = set(map(tuple, seq))

第二步是产生一个包含元组的聚合熊猫对象

tups = df.groupby('ID')['COL'].agg(tuple)
tups

ID
1    (A, B, C, D)
2       (A, C, D)
3       (A, B, C)
Name: COL, dtype: object

第三步,我们可以使用 isin

tups.isin(seq).astype(int).reset_index(name='is_in_seq')

   ID  is_in_seq
0   1          0
1   2          1
2   3          1

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫系列中的单词完全匹配提取功能

来自分类Dev

熊猫系列替换值忽略大小写,但前提是完全匹配

来自分类Dev

python熊猫系列的键值列表

来自分类Dev

删除熊猫系列中的空列表

来自分类Dev

从列表中替换熊猫系列的值

来自分类Dev

熊猫系列列表到一个系列

来自分类Dev

展平熊猫系列,即元素为列表的系列

来自分类Dev

行系列不完全匹配的搜索算法

来自分类Dev

行系列不完全匹配的搜索算法

来自分类Dev

将列表列表映射到熊猫系列

来自分类Dev

两个熊猫系列之间的匹配ID

来自分类Dev

为熊猫饼图系列匹配切片的着色

来自分类Dev

重新索引系列输出与文档中的熊猫示例不匹配

来自分类Dev

如何匹配列表和大熊猫

来自分类Dev

根据时间戳合并的熊猫不完全匹配

来自分类Dev

能够绘制为列表,无法绘制为熊猫系列

来自分类Dev

熊猫系列中列表的有效串联

来自分类Dev

将单个项目追加到熊猫系列的列表中

来自分类Dev

在熊猫系列提取列表元素,并转换成datetime

来自分类Dev

如何使用列表索引提取熊猫系列的元素

来自分类Dev

从元组列表中替换熊猫系列中的值

来自分类Dev

从熊猫系列的字符串列表中删除空格

来自分类Dev

NLTK令牌-从熊猫系列中创建单词的单个列表

来自分类Dev

熊猫:在包含列表对象的系列上重叠的正向填充

来自分类Dev

将熊猫系列转换为保留索引的列表

来自分类Dev

检查系列的dtype是否属于熊猫中的dtype列表

来自分类Dev

熊猫:过滤器:系列内列表中的“值”

来自分类Dev

如何在熊猫中垂直获取系列列表元素

来自分类Dev

计算包含列表的熊猫系列中元素的出现次数

Related 相关文章

热门标签

归档