gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 00:20:25 26 4
gpt4 key购买 nike

这是我的数据框

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com