这似乎是一个简单的问题,但我正在努力寻找解决方案。我有一个熊猫df,有两列(ticker,target)和一个名为stock_symbols的列表。简单来说,这就是我想要做的(请注意,这不是我的代码):
For each value in df['ticker']:
If df['ticker'] is in [ticker_list]:
df['target'] = 1
Else:
df['target'] = 0
最佳答案
使用isin
创建boolean mask
并将其转换为int
(感谢Michael Hoff):
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
关于python - Pandas 通过将两列与列表进行比较来更新列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43499044/