为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Pandas 对 Dataframe 进行排序。保持列完整

使用 Pandas 对 Dataframe 进行排序。保持列完整

MMMHUHU 2021-07-24 19:04:07
如下图所示,我想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) 


查看完整回答
反对 回复 2021-07-28
?
桃花长相依

TA贡献1860条经验 获得超8个赞

df.sort_values(by=['Type']) [1]

你可以做你自己的排序函数[2],字符串可以直接比较 stringRow2 < stringRow3 。


查看完整回答
反对 回复 2021-07-28
  • 2 回答
  • 0 关注
  • 294 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号