代码之家  ›  专栏  ›  技术社区  ›  edyvedy13

在单元格中排序字符串

  •  2
  • edyvedy13  · 技术社区  · 5 年前

    我有这样的数据帧:

    individual  states
    1           Alaska, Hawaii 
    2           Hawaii, Alaska
    3           Kansas, Iowa, Maryland
    4           New Jersey, Newada
    5           Newada, New Jersey
    

    我想对单元格中的字符串进行排序,并希望获得以下数据帧

    individual  states
    1           Alaska, Hawaii 
    2           Alaska, Hawaii
    3           Iowa, Kansas, Maryland
    4           New Jersey, Newada
    5           New Jersey, Newada
    

    2 回复  |  直到 5 年前
        1
  •  3
  •   cs95    5 年前

    这不是一个简单的问题。。。我建议分开,分类和加入 map :

    df['states'] = df['states'].map(lambda x: ', '.join(sorted(x.split(', '))))
    df
    
       individual                  states
    0           1          Alaska, Hawaii
    1           2          Alaska, Hawaii
    2           3  Iowa, Kansas, Maryland
    3           4      New Jersey, Newada
    4           5      New Jersey, Newada
    
        2
  •  3
  •   BENY    5 年前

    get_dummies 然后 dot

    s = df.states.str.get_dummies(', ')
    s.dot(s.columns+',').str[:-1]
    Out[861]: 
    0           Alaska,Hawaii
    1           Alaska,Hawaii
    2    Iowa,Kansas,Maryland
    3       New Jersey,Newada
    4       New Jersey,Newada
    dtype: object
    
    df['state'] = s.dot(s.columns+',').str[:-1]