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