如下图所示,我想Type按字母顺序对聊天进行排序。但是,我不想弄乱[Date , User_id]每个Chat name. 鉴于我在左侧有输入数据框,我该怎么做?(在 python 中使用 Pandas)
2 回答

不负相思意
TA贡献1777条经验 获得超10个赞
df.sort_values(by='Type', kind='mergesort')
从链接的答案:
如果具有相同键的两个对象在排序输出中的出现顺序与它们在要排序的输入数组中出现的顺序相同,则称排序算法是稳定的。
来自熊猫文档:
种类:{'quicksort', 'mergesort', 'heapsort'},默认为'quicksort'
排序算法的选择。另请参阅 ndarray.np.sort 以获取更多信息。归并排序是唯一稳定的算法。对于 DataFrames,此选项仅在对单个列或标签进行排序时应用。
更新:正如@ALollz 正确指出的那样,最好先将所有值转换为小写,然后进行排序(即,否则“Bird”将被放置在结果中的“aligator”之前):
df['temp'] = df['Type'].str.lower()
df = df.sort_values(by='temp', kind='mergesort')
df = df.drop('temp', axis=1)

桃花长相依
TA贡献1860条经验 获得超8个赞
df.sort_values(by=['Type']) [1]
你可以做你自己的排序函数[2],字符串可以直接比较 stringRow2 < stringRow3 。
添加回答
举报
0/150
提交
取消