繁体   English   中英

select 列值基于 Pandas DataFrame 中的索引名称

[英]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.isinboolean 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM