【问题标题】:how to create new column on the basis of word matched [duplicate]如何根据匹配的单词创建新列[重复]
【发布时间】:2020-01-04 22:34:55
【问题描述】:

如何在搜索项的基础上添加一个新列,例如如果数据框列包含 BX--那么在新列中它应该用 BOX 替换它,因为有 30 多个短格式

我认为字典是替换的最佳选择

 mapping= {
'BX': 'BOX', 
'CS': 'CASE', 
'EA': 'EACH', 
'PK': 'PACK', 
'None': None
  }
  import pandas as pd 
   lst = ['BX', 'EA', 'EA', 'PK', 'BG','CS'] 
  df = pd.DataFrame(lst)
      df.map(mapping) 

不知怎的,我做不到

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以按以下方式执行此操作。

    # first define a mapping
    mapping= {
        'BX': 'BOX', 
        'CS': 'CASE', 
        'EA': 'EACH', 
        'PK': 'PACK', 
        'None': None
    }
    
    # then apply it with map (assuming your abbreviations are 
    # stored in column short and the result should be stroed 
    # in long)
    df['long']=df['short'].map(mapping)
    

    使用以下测试数据框

    lst = ['BX', 'EA', 'EA', 'PK', 'BG','CS'] 
    df = pd.DataFrame(dict(short=lst)) 
    df['short'].map(mapping)
    

    它输出:

    Out[447]: 
      short  long
    0    BX   BOX
    1    EA  EACH
    2    EA  EACH
    3    PK  PACK
    4    BG   NaN
    5    CS  CASE
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-13
      • 2019-11-29
      • 2020-05-09
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      • 2019-02-04
      相关资源
      最近更新 更多