我有一个Pandas数据帧,其中有一列名为col1
,我想在数据帧中添加一个新列,该值取决于每条记录的col1
的内容。我试过这个:
d['new_column'] = 'CASE 1' if d['COL1'] == None else 'CASE 2' if d['COL1'] == 0 else 'CASE 3'
但我得到了这个错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
如何进行评估以正确设置新列的值?
尝试使用np.where
。在这种情况下,它既高效又易于使用:
import numpy as np
df['new_column'] = np.where(d['COL1'].isnull(), 'CASE1',
np.where(d['COL1']==0, 'CASE 2', 'CASE 3'))