[英]Check if item from a Pandas column list contains value from another column
这是DF,
df = pd.DataFrame({'List': ['[7%, 9%, 30%]', '[9%, 30%]', '[7%]'], 'Value' : ['7%', '0%', '7%']})
List Value
[7%, 9%, 30%] 7%
[9%, 30%] 0%
[7%] 7%
如何创建一个新列来检查值是否在列表列中预期的 output
List Value CTRL
[7%, 9%, 30%] 7% True
[9%, 30%] 0% False
[7%] 7% True
尝试的事情没有成功..
df['CTRL'] = np.where([item for item in df['List']] == df['Value'], True, False)
您需要在这里循环,列表推导应该是最有效的:
df['CTRL'] = [v in l.strip('[]').split(',')
for l,v in zip(df['List'], df['Value'])]
或者,您有列表(不是问题中的字符串):
df['CTRL'] = [v in l for l,v in zip(df['List'], df['Value'])]
output:
List Value CTRL
0 [7%, 9%, 30%] 7% True
1 [9%, 30%] 0% False
2 [7%] 7% True
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.