[英]select column value based on index name in Pandas DataFrame
我有一个名为 score_df 的score_df
有一个名为Score
的列,并且索引的名称如下
Score
year 0.029827
yesterday 0.029827
you 0.089482
zeros 0.029827
zones 0.029827
我有另一个df
有一个名为df['keywords']
的列,其中包含各种关键字。 我需要遍历此列并在score_df
的索引中搜索,如果索引与关键字匹配,我需要 append 它是列表中的Score
值。 我正在使用以下代码。
for key_w in df['keyword'].to_list():
result = score_df.loc[key_w, :]
但它给出了KeyError: 'keyword value'
。 有人可以帮助我如何 select 所需的值? 谢谢
我认为你需要DataFrame.merge
与默认内连接:
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]
或 select 在Index.isin
和boolean indexing
中按列keyword
索引:
L = score_df.loc[score_df.index.isin(df['keyword']), 'Score'].tolist()
您可以使用方法filter
。 例如:
df1
col
A 0
B 1
C 2
df2
keys
0 A
1 B
2 Z
df1.filter(df2['keys'], axis=0)
Output:
col
A 0
B 1
要将其转换为列表,请使用tolist()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.