有没有办法从数据帧的相邻列中获取价值?

时间:2019-06-19 19:19:54

标签: python pandas

我有一个由符号组成的列表,例如['T.TO','VCB.TO']

我有一个这样的数据框:

  1 RIC     Expected Return
  2 T.TO    2
  3 A.TO    1.1
  4 VCB.TO  0.004
  5 ASN.TO  3
  6 00G.H   1.1

,因此具有不同的RICS。并非RIC列中的所有值都以符号表示。

我想做的是遍历符号并从数据框中提取相应的返回值。

类似这样的东西:

for i in symbols:
     if i in df.RIC:
         list_returns.append(df.Expected Return.index(i))

我知道这真的不是处理数据帧的正确语法。我可以将其转换为字典,然后使用for循环进行处理,但是有没有一种方法可以直接使用数据框来处理它?<​​/ p>

预期输出:list_returns = [2,1.1]

实际的数据框和符号列表的大小要大得多。

2 个答案:

答案 0 :(得分:1)

将您的符号列表转换为数据框,只需merge

symb = pd.DataFrame({'RIC':symbols})

symb.merge(df, on='RIC')

      RIC  Expected Return
0    T.TO            2.000
1  VCB.TO            0.004

有关合并的更多信息,请查看here

答案 1 :(得分:1)

使用isinloctolist将为您提供列表:

df.loc[df.RIC.isin(symbols), 'Expected_Return'].tolist()

Out[933]: [2.0, 0.004]