如下图所示,我想按以下方式对聊天进行排序Type
按字母顺序排列。不过,我不想打乱顺序[Date , User_id]
每个内Chat name
。鉴于我的输入数据框位于左侧,我应该如何执行此操作? (在Python中使用Pandas)
![enter image description here](https://i.stack.imgur.com/7xW3k.png)
您想使用对值进行排序稳定的排序算法这是归并排序:
df.sort_values(by='Type', kind='mergesort')
从链接的答案:
如果两个对象具有相同的排序算法,则称排序算法是稳定的
键在排序输出中的出现顺序与它们在排序输出中出现的顺序相同
输入要排序的数组。
From 熊猫文档:
kind : {‘quicksort’, ‘mergesort’, ‘heapsort’}, 默认 ‘quicksort’
排序算法的选择。另请参阅 ndarray.np.sort 了解更多信息
信息。归并排序是唯一稳定的算法。对于数据框,
仅当对单个列或标签进行排序时才应用此选项。
Update:正如@ALollz正确指出的那样,最好先将所有值转换为小写,然后进行排序(即,否则“Bird”将被放置在结果中的“aligator”之前):
df['temp'] = df['Type'].str.lower()
df = df.sort_values(by='temp', kind='mergesort')
df = df.drop('temp', axis=1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)