python replace string function抛出asterix通配符错误


丫头
2025-03-17 08:39:58 (22天前)


(“

农业
</跨度>
’,‘agri’)

我正在使用熊猫和蟒蛇

编辑:
当我尝试使用/逃避时,通配符不能正常工作

在[44] df = pd.DataFrame(columns = [‘

农业
</跨度>
’,‘dfad

农业
</跨度>
df ’])

在[45] DF
出[45]:
空DataFrame
列: [

农业
</跨度>
,dfad

农业
</跨度>
DF]
指数:[]

在[46] df.columns.str.replace(‘/

农业
</跨度>
*”, ’农业’)
出[46]:索引([u’agri’,u’dfad agri df’],dtype

2 条回复
  1. 0# 谦逊的毛巾 | 2019-08-31 10-32



    你需要星号

    *

    最后为了匹配字符串0次或更多次,请参阅

    文档





    1. In [287]:
      df = pd.DataFrame(columns=[‘agriculture’])
      df

    2. Out[287]:
      Empty DataFrame
      Columns: [agriculture]
      Index: []

    3. In [289]:
      df.columns.str.replace(‘agriculture*’, agri’)

    4. Out[289]:
      Index([‘agri’], dtype=’object’)

    5. </code>



    编辑
    </强>



    根据您的新要求和实际要求,您可以使用

    str.contains

    找到匹配,然后使用它来构建一个字典来映射旧的名称,然后调用

    rename





    1. In [307]:
      matching_cols = df.columns[df.columns.str.contains(‘agriculture’)]
      df.rename(columns = dict(zip(matching_cols, [‘agri’] * len(matching_cols))))

    2. Out[307]:
      Empty DataFrame
      Columns: [agri, agri]
      Index: []

    3. </code>

登录 后才能参与评论