gpt4 book ai didi

用于索引的 R 的 match() 的 Python 等价性

转载 作者:太空狗 更新时间:2023-10-30 02:56:20 25 4
gpt4 key购买 nike

所以我基本上想在 Python 中实现与 R 的 match() 函数等效的功能,使用 Pandas 数据帧——而不使用 for 循环。

在 R 中,match() 返回第一个参数在第二个参数中的(第一个)匹配位置向量。

假设我有两个 df A 和 B,其中都包含 C 列。其中

A$C = c('a','b')
B$C = c('c','c','b','b','c','b','a','a')

在 R 中我们会得到

match(A$C,B$C) = c(7,3)

对于 pandas 数据框中的列,Python 中的等效方法是什么,它不需要遍历值。

最佳答案

这是一个 one liner:

B.reset_index().set_index('c').loc[A.c, 'index'].values

此解决方案以与输入 A 相同的顺序返回结果,就像 R 中的 match 一样,因此它是一个更好的等价物比@jezrael 的回答,因为


完整示例:

A = pd.DataFrame({'c':['a','b']})
B = pd.DataFrame({'c':['c','c','b','b','c','b','a','a']})

B.reset_index().set_index('c').loc[A.c, 'index'].values
Output array([6, 2])

关于用于索引的 R 的 match() 的 Python 等价性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39869958/

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