python - 将第一个单元格与行和计数匹配的其他值进行比较

标签 python pandas dataframe

假设我有以下DataFrame:

key id1 id2 id3 id4 id5
1   8   1   1   9   7   
2   5   2   2   2   2
3   5   4   7   9   1   

我想计算 id1-5 的值与我的 key 值匹配的次数,并将其作为新列保护。

这将是我想要的结果:

key id1 id2 id3 id4 id5 matches
1   8   1   1   1   7   3
2   5   2   2   2   2   4
3   5   4   7   9   1   0

最佳答案

使用 pandas.DataFrame.filtereq 的一种方法:

df["matches"] = df.filter(like="id").eq(df["key"], axis=0).sum(1)
print(df)

输出:

   key  id1  id2  id3  id4  id5  matches
0    1    8    1    1    1    7        3
1    2    5    2    2    2    2        4
2    3    5    4    7    9    1        0

关于python - 将第一个单元格与行和计数匹配的其他值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66164912/

相关文章:

python - 如果元组的第一项等于任何给定的字符串,则从列表中删除元组

python - 在写入 CSV 文件时从中读取

python - 从系列列表创建数据框

python - 通过行和列索引查找 Dataframe 中的确切元素位置

python - 使用正则表达式删除字符串末尾不可预测的日期格式

python - usera._meta.get_all_field_names() 中的变量比模型中的变量更多

python - 在方法内调用函数

python - Pandas 删除所有包含任何 nan 的列,除了一个

python - 根据另一个列表从 pandas 数据框列中的列表中删除值

python - 如何使用 Pandas 将某些行视为新列