str.split()返回的Pandas排序列表

时间:2016-05-02 17:06:02

标签: python string sorting pandas dataframe

给定一个类型为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

2 个答案:

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