熊猫在细胞中排序字符串

时间:2019-04-21 01:40:26

标签: python pandas

我有这样的数据框:

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 个答案:

答案 0 :(得分:3)

这不是一个简单的问题...我建议使用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

答案 1 :(得分:3)

我正在使用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]