【问题标题】:Adding string prefix to column将字符串前缀添加到列
【发布时间】:2023-03-10 22:32:01
【问题描述】:

我正在尝试为 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)

但它也没有工作。我在那里错过了什么?

【问题讨论】:

    标签: python regex pandas


    【解决方案1】:

    如果需要测试列表,则需要通过| 为正则表达式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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-03
      • 1970-01-01
      • 2018-08-24
      • 1970-01-01
      • 1970-01-01
      • 2013-11-30
      相关资源
      最近更新 更多