python - 从两个数据框中获取匹配字符串的索引

标签 python pandas dataframe

我有两个数据框。我需要搜索 datframe 2 以查看 datframe 1 中匹配的那个。并用它的索引替换字符串。

所以我想要第三个数据框,指示从数据框 2 到数据框 1 的匹配字符串的索引。

  X = pd.DataFrame(np.array(['A','B','C','D','AA','AB','AC','AD','BA','BB','BC','AD']).reshape(4,3),columns=['a','b','c'])

    a   b   c
0   A   B   C
1   D   AA  AB
2   AC  AD  BA
3   BB  BC  AD


Y = pd.DataFrame(np.array(['A','AA','AC','D','B','AB','C','AD','BC','BB']).reshape(10,1),columns=['X'])


    X
0   A
1   AA
2   AC
3   D
4   B
5   AB
6   C
7   AD
8   BC
9   BB

结果数据帧

    a   b   c
0   0   4   6
1   3   1   5
2   2   7   NA
3   9   8   7

有人建议我使用以下代码,但似乎并不合适。不工作。

t = pd.merge(df1.stack().reset_index(), df2.reset_index(), left_on = 0, right_on = "0")
res = t.set_index(["level_0", "level_1"]).drop([0, "0"], axis=1).unstack()
print(res)

最佳答案

applymap一起使用:

Y = Y.reset_index().set_index('X')['index']
X = X.apply(lambda x: x.map(Y))
print(X)
   a  b    c
0  0  4  6.0
1  3  1  5.0
2  2  7  NaN
3  9  8  7.0

关于python - 从两个数据框中获取匹配字符串的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63124544/

相关文章:

python - 输出 SecKeyCopyExternalRepresentation

python - 如何反转列值并保持列标题不变

python - 要么对数值进行操作,要么用 nan 替换单元格

python - 为什么通过 bool 掩码过滤 DataFrame 比 apply() 快得多?

python - 如何在 Django 密码重置中为密码重置添加用户名和电子邮件选项?

python - 为 Django 测试添加请求 header 时出现问题

python - 迭代两个 pandas 数据帧之间的日期范围以获取类别计数

python - 如何使用另一个数据帧的 pandas 查询结果来过滤 pandas 数据帧

python - 将异常保存到python中的文件

python - 将 pandas dataframe 中的列从 float 转换为 int