给定一个类型为str的Pandas系列,我想对str.split返回的结果进行排序。
例如,给定系列
s = pd.Series(['abc,def,ghi','ghi,abc'])
我想得到
s2 = pd.Series(['abc,def,ghi','abc,ghi'])
结果。
我该怎么做?我想过像s.str.split(',').sort()
这样的东西。但是,我在Pandas中找不到这样的排序功能。还有其他想法吗?
另一个想法是使用函数get_dummies
,然后重新排列列,最后执行join_dummies
之类的操作。但是,我找不到这样的函数join_dummies
。
答案 0 :(得分:4)
试试这个:
In [70]: s.str.split(',').map(lambda x: ','.join(sorted(x)))
Out[70]:
0 abc,def,ghi
1 abc,ghi
dtype: object
答案 1 :(得分:1)
您可以使用在Pandas中非常有用的apply功能。
s.apply(lambda x: ','.join(sorted(x.split(','))))
0 abc,def,ghi
1 abc,ghi