正在向列添加字符串前缀



我正在尝试为df中的一些行(满足条件的行(添加前缀。尝试过这个:

work_df['col1'] = 'bla'+work_df['col1'].astype(str) if work_df.col1.str.contains(my_list, regex=True, na=False) else work_df['col1'].astype(str)

然后得到TypeError: unhashable type: 'dict'

我也试过:

work_df[work_df.col1.str.contains(ny_list, regex=True, na=False)] = 'bla'+work_df['col1'].astype(str)

但它也不起作用。我在那里错过了什么?

如果需要测试列表,则通过正则表达式or|连接值,然后传递到numpy.where:

mask = work_df.col1.str.contains('|'.join(my_list), regex=True, na=False)
s = work_df['col1'].astype(str)
work_df['col1'] = np.where(mask, 'bla'+ s, s)

或者:

work_df['col1'] = s.mask(mask, 'bla'+ s)

最新更新