尝试根据不同列中是否存在某些字符串来填充数据帧中的列。我可以通过一系列嵌套的np.where
语句来实现,例如:
cond1=df.CollectType.str.contains('Outcrop')
cond2=df.CollectType.str.contains('Chip channel')
cond3=df.CollectType.str.contains('Rubble')
cond4=df.CollectType.str.contains('Float')
cond5=df.CollectType.str.contains('Dump')
df['R_SampleType'] = np.where(cond1, 'Outcrop', np.where(cond2,
'Chip channel', np.where(cond3,'Rubble',
np.where(cond4,'Float',
np.where(cond5,'Dump','')))))
但这似乎不是很有效。因此,我尝试列出条件,并使用以下命令调用列表:
values = ['Outcrop', 'Chip Channel','Rubble','Float','Dump']
conditions = list(map(df['CollectType'].str.contains, values))
df['R_SampleType'] = np.select(conditions, values, '')
但我得到了一个错误:
ValueError: invalid entry 0 in condlist: should be boolean ndarray
有什么建议吗
看起来您只是想复制一列,并在不满足条件的地方放置一个空字符串
如果是这种情况,这里有一个解决方案:
可复制示例:
相关问题 更多 >
编程相关推荐