本文介绍了 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
用于创建转换为int
的boolean 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 通过将两列与列表进行比较来更新列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!