本文介绍了 pandas 通过将两列与列表进行比较来更新列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这似乎是一个简单的问题,但我一直在努力寻找解决方案.我有一个带有两列(ticker,target)和一个名为stock_symbols的列表的pandas df.简单来说,这就是我想要做的(请注意,这不是我的代码):

This seems like an easy question, but I'm struggling to find a solution. I have a pandas df with two columns (ticker, target) and a list called stock_symbols. In simple terms here's what I want to do (note-this is not my code):

For each value in df['ticker']:
    If df['ticker'] is in [ticker_list]:
        df['target'] = 1
    Else:
        df['target'] = 0

推荐答案

使用 isin 用于创建转换为intboolean mask(感谢):

df['target'] = df['ticker'].isin(ticker_list).astype(int)

示例:

ticker_list = ['s','f']
df = pd.DataFrame({'ticker':['s','d','f']})
print (df)
  ticker
0      s
1      d
2      f

df['target'] = df['ticker'].isin(ticker_list).astype(int)
print (df)
  ticker  target
0      s       1
1      d       0
2      f       1

这篇关于 pandas 通过将两列与列表进行比较来更新列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 12:32