python - 根据关键行查找跨轴的第一个重复项

标签 python pandas

这是我的数据框

df = pd.DataFrame({0: {'key': 2, 1: 7, 2: 5, 3: 4, 4: 2, 5: 7}, 1: {'key': 3, 1: 6, 2: 4, 3: 5, 4: 3, 5: 6}, 2: {'键': 4, 1: 3, 2: 3, 3: 4, 4: 4, 5: 3}, 3: {'键': 3, 1: 4, 2: 2, 3: 3, 4: 5, 5: 4}, 4: {'键': 6, 1: 5, 2: 3, 3: 6, 4: 4, 5: 3}, 5: {'键': 2, 1: 4, 2: 6, 3: 7, 4: 3, 5: 2}, 6: {'键': 3, 1: 3, 2: 7, 3: 6, 4: 6, 5: 1}, 7: {'键': 4, 1: 2, 2: 6, 3: 3, 4: 7, 5: 2}, 8: {'键': 3, 1: 1, 2: 7, 3: 4, 4: 6, 5: 3}, 9: {'键': 6, 1: 2, 2: 6, 3: 5, 4: 3, 5: 6}})

     0  1  2  3  4  5  6  7  8  9
key  2  3  4  3  6  2  3  4  3  6
1    7  6  3  4  5  4  3  2  1  2
2    5  4  3  2  3  6  7  6  7  6
3    4  5  4  3  6  7  6  3  4  5
4    2  3  4  5  4  3  6  7  6  3
5    7  6  3  4  3  2  1  2  3  6

我需要找到相关索引与从左到右的关键行匹配的列。

例如,在索引 1 处,第 6 列与键行具有相同的值,索引 2 与第 9 列处的键行匹配,并且之前没有任何值。相同的逻辑可以应用于索引 3、4 和 5。

我只需要索引与键值匹配的第一个实例,后面的所有值都不重要。

预期输出


      0   1   2   3   4   5   6   7   8   9   trace
key   2   3   4   3   6   2   3   4   3   6   NaN
1     7   6   3   4   5   4   3   2   1   2   6
2     5   4   3   2   3   6   7   6   7   6   9
3     4   5   4   3   6   7   6   3   4   5   2
4     2   3   4   5   4   3   6   7   6   3   0
5     7   6   3   4   3   2   1   2   3   6   5

我尝试了 duplicates 的多种变体但似乎没有任何作用。

最佳答案

您可以使用idxmax在检查 df 中的值与关键行相等 (eq) 后,轴沿着列。

df["trace"] = df.iloc[1:, :].eq(df.loc['key', :]).idxmax(axis=1)
print (df)
     0  1  2  3  4  5  6  7  8  9  trace
key  2  3  4  3  6  2  3  4  3  6    NaN
1    7  6  3  4  5  4  3  2  1  2    6.0
2    5  4  3  2  3  6  7  6  7  6    9.0
3    4  5  4  3  6  7  6  3  4  5    2.0
4    2  3  4  5  4  3  6  7  6  3    0.0
5    7  6  3  4  3  2  1  2  3  6    5.0

关于python - 根据关键行查找跨轴的第一个重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62124865/

相关文章:

python - 打印逻辑回归中的 p 值 MNLogit()

不可变集合的 Python 类型 : `Final[Set[T]]` vs `FrozenSet[T]`

python - iter_content() 函数到底做了什么?

python - 如何解决身份验证过程取消错误?

python - 按索引和列排序

python - 生成缺失的多索引

python - 值错误: operands could not be broadcast together with shape when calling pands value_counts() on groupby object

python - 减少 pyinstaller exe 的大小

python - 如何将元数据合并到NLTK语料库中以进行高效处理

python - Pandas - 从列中的 float 中删除字符串