Python 根据DataFrame中的索引名选择列值

Python 根据DataFrame中的索引名选择列值,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个名为score\u df的数据框,其中一列名为score,索引的名称如下 Score year 0.029827 yesterday 0.029827 you 0.089482 zeros 0.029827 zones 0.029827 我有另一个df有一个名为df['keywords']的列,其中包含各种关键字。我需要迭代此列并搜索score\u df的索引,如果索引与关键字匹配,我需要将其score值附加到列表中

我有一个名为
score\u df
的数据框,其中一列名为
score
,索引的名称如下

           Score
year       0.029827
yesterday  0.029827
you        0.089482
zeros      0.029827
zones      0.029827
我有另一个
df
有一个名为
df['keywords']
的列,其中包含各种关键字。我需要迭代此列并搜索
score\u df
的索引,如果索引与关键字匹配,我需要将其
score
值附加到列表中。我正在使用以下代码

for key_w in df['keyword'].to_list():
    result = score_df.loc[key_w, :]
但它给出了
keyrerror:“关键字值”
。有人能帮我选择所需的值吗?谢谢

我认为您需要使用默认的内部联接:

print (score_df)
              Score
year       0.029827
yesterday  0.029827
you        0.089482
zeros      0.029827
zones      0.029827

print (df)
     keyword
0      aaaaa
1  yesterday
2        you

print (score_df.merge(df, left_index=True, right_on='keyword'))
      Score    keyword
1  0.029827  yesterday
2  0.089482        you

L = score_df.merge(df, left_index=True, right_on='keyword')['Score'].tolist()
print (L)
[0.029827, 0.089482]
或者在和中选择按列索引
关键字

你可以使用这个方法。例如:

df1

df2

输出:

   col
A    0
B    1
要将其转换为列表,请使用
tolist()

错误是针对
打印(df['keyword'])
   col
A    0
B    1
C    2
  keys
0    A
1    B
2    Z


df1.filter(df2['keys'], axis=0)
   col
A    0
B    1