Python / Pandas - 根据其他数据帧的索引进行过滤

abu*_*nte 2 python pandas

我有这两个数据框:

df1:
               Value
dude_id
123                x
543                y
984                z


df2:
          Value
id
123           R
498           S
543           D
984           X
009           Z
Run Code Online (Sandbox Code Playgroud)

我想以df2一种只包含 的df1索引中存在的键的方式进行过滤。它应该看起来像这样:

df2:
          Value
id
123           R
543           D
984           X
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

df2.filter(like=df.index, axis=0)
Run Code Online (Sandbox Code Playgroud)

然而,它使我出现以下错误:

ValueError: The truth value of a Int64Index is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Run Code Online (Sandbox Code Playgroud)

我缺少什么?

Zer*_*ero 5

使用loc

In [952]: df2.loc[df1.index]
Out[952]:
        Value
dude_id
123         R
543         D
984         X
Run Code Online (Sandbox Code Playgroud)

并且,您可以重命名索引名称

In [956]: df2.loc[df1.index].rename_axis('id')
Out[956]:
    Value
id
123     R
543     D
984     X
Run Code Online (Sandbox Code Playgroud)