pandas 数据框中的自定义排序

2023-11-30

我有 python pandas 数据框,其中一列包含月份名称。

如何使用字典进行自定义排序,例如:

custom_dict = {'March':0, 'April':1, 'Dec':3}  

引入 Pandas 0.15分类系列,这提供了一种更清晰的方法来做到这一点:

首先将月份列设为分类列并指定要使用的顺序。

In [21]: df['m'] = pd.Categorical(df['m'], ["March", "April", "Dec"])

In [22]: df  # looks the same!
Out[22]:
   a  b      m
0  1  2  March
1  5  6    Dec
2  3  4  April

现在,当您对月份列进行排序时,它将根据该列表进行排序:

In [23]: df.sort_values("m")
Out[23]:
   a  b      m
0  1  2  March
2  3  4  April
1  5  6    Dec

注意:如果某个值不在列表中,它将被转换为 NaN。


对于那些有兴趣的人来说,这是一个较旧的答案......

您可以创建一个中间系列,并且set_index对此:

df = pd.DataFrame([[1, 2, 'March'],[5, 6, 'Dec'],[3, 4, 'April']], columns=['a','b','m'])
s = df['m'].apply(lambda x: {'March':0, 'April':1, 'Dec':3}[x])
s.sort_values()

In [4]: df.set_index(s.index).sort()
Out[4]: 
   a  b      m
0  1  2  March
1  3  4  April
2  5  6    Dec

正如所评论的,在较新的熊猫中,系列有一个replace更优雅地做到这一点的方法:

s = df['m'].replace({'March':0, 'April':1, 'Dec':3})

细微的区别是,如果字典之外存在值,则不会引发此问题(它将保持不变)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pandas 数据框中的自定义排序 的相关文章

  • Python 将列表中的字符串转换为数字

    我遇到了以下错误消息 以 10 为基数的 int 的文字无效 2 2 外部用单引号括起来 内部用双引号括起来 该数据位于primes列出使用print primes 0 样本数据在primes list 2 3 5 7 The primes
  • Python中使用cv2获取当前视频播放位置

    我正在尝试使用 CV2 和 Python 从播放视频中获取当前播放时间位置 如果可能 以毫秒为单位 目前我正在使用此示例代码来播放视频文件 import cv2 import numpy as np file name 2 mp4 wind
  • Python 可以使用单独的媒体播放器打开 mp3 文件吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否可以开一个mp3Python 中的文件 可以使用Popen 我并不是要在程序中运行它 我的意思是作为媒体播放器中的一个单独窗口或其
  • Accel 无法在 gedit 3 插件中工作

    我试图为 Gedit 3 编写一个使用 GObject 自省的小插件 下面显示的代码的相关部分只是为了建立一个环境 然后我可以将函数放入按钮的回调中 但是 该按钮的加速器不起作用 这段代码有什么问题 我正在使用教程here http www
  • Pygame 玩家精灵没有出现

    我一直在为学校计算机课做这个项目 但无法让玩家精灵出现 有人可以帮忙吗 当我运行主游戏循环时 除了玩家精灵之外 所有内容都正确显示 它应该由于箭头输入而在屏幕上移动并受到重力的影响 当我删除图像并仅使用对象类和矩形时 该代码也有效 impo
  • 如何更改条形图上的 y 轴限制?

    我有一个df 我从中索引了europe n我绘制了一个条形图 europe n r 5 c 45 looks like this df Country string df Population numeric 变量 plt bar df C
  • WTForms 中的小数字段舍入

    我有一个包含价格小数字段的表单 如下所示 from flask ext wtf import Form import wtforms from wtforms validators import DataRequired from deci
  • 更改Python pylab玫瑰/极坐标图中图例标题的字体大小

    我正在尝试更改玫瑰图或 极地 图上现有图例标题的字体大小 大部分代码是由不在的其他人编写的 我已经添加 ax legend title legend title setp l get title fontsize 8 添加标题 legend
  • Python argparse store_true 并将可选选项存储在一个参数中[重复]

    这个问题在这里已经有答案了 我需要识别是否单独给出参数或带有可选字符串或两者都没有 parser add argument options parser parse args so prog py arg 应该存储 进入选项 arg pro
  • 将数据框列打包到 pandas 中列出

    我需要将 pandas DataFrame 列打包到包含列表的一列中 例子 For gt gt gt df a b c 0 81 88 1 1 42 7 23 2 8 37 63 3 18 22 20 制作列表栏 list col 0 81
  • Python3.1中的视图?

    Python3 1中的视图到底是什么 它们的行为方式似乎与迭代器类似 并且它们也可以具体化为列表 迭代器和视图有何不同 据我所知 视图仍然附加到创建它的对象上 对原始对象的修改会影响视图 来自docs http docs python or
  • 监控单个文件

    我需要监控 使用watchdog http pythonhosted org watchdog index html 单个文件 而不是整个目录 避免监视整个目录的最佳方法是什么 我想this http pythonhosted org wa
  • 如何替换被测模块的文件访问引用

    pyfakefs https code google com p pyfakefs 听起来非常有用 它 最初是作为核心 Python 模块的一个适度的假实现来开发的 以支持中等复杂的文件系统交互 并于 2006 年 9 月在 Google
  • Python unittest - 与assertRaises相反?

    我想编写一个测试来确定在给定情况下不会引发异常 测试是否有异常很简单is上调 sInvalidPath AlwaysSuppliesAnInvalidPath self assertRaises PathIsNotAValidOne MyO
  • import numpy 和 import numpy as np 之间的区别

    我明白 如果可能的话 应该使用 import numpy as np 这有助于避免由于命名空间引起的任何冲突 但我注意到虽然下面的命令有效 import numpy f2py as myf2py 以下不 import numpy as np
  • 具有条件的重复行 pandas dataframe python

    我的数据框有问题 我的 df 是 product power brand product 1 3 x 1500W brand A product 2 2x1000W 1x100W product 3 1x1500W 1x500W brand
  • 仅对某些行的不同大小的两个 pandas 数据帧的列进行求和

    我有两个 pandas 数据框 如下所示 df1 n column1 0 5 0 0 0 1 6 0 0 0 2 7 0 0 0 3 8 0 0 0 4 9 0 0 0 5 10 0 0 0 df2 n column2 0 6 0 1 0
  • Tornado websocket handler , self.close() 正在关闭连接而不触发 on_close() 方法

    我是 python stackoverflow tornado 的新手 所以请耐心等待 纠正我 我正在使用龙卷风开发实时应用程序 当我在 Websocket 处理程序类中调用 self close 时 on close 方法不会启动 这次我
  • 如何从python导入路径中删除当前目录

    我想使用 Mercurial 存储库hg本身 也就是说 我克隆了 Mercurialhttps www mercurial scm org repo hg https www mercurial scm org repo hg并想运行一些h
  • Python pip 安装错误 [SSL: CERTIFICATE_VERIFY_FAILED]

    我已经尝试解决这个问题有一段时间了 由于某种原因 我陷入了 ssl 问题 并且不知道发生了什么 问题 我已经安装了 python2 7 和 easy install2 7 但是当尝试使用 easy install2 7 安装 pip 时 出

随机推荐

  • 有没有办法从堆栈溢出下载所有问题和答案?

    我有兴趣查看网站使用情况 问题类型和堆栈溢出的答案 有没有办法下载全部内容 我考虑过使用 beautiful soup 或类似的网页抓取作为一种选择 但我认为有如此多的专家用户 可以通过 API 轻松获得信息 是的 正如你猜的那样 有一个
  • Quartz.NET 运行作业自行重新安排?

    我完全以编程方式创建了一个 Quartz NET 作业 没有配置文件等 它按计划运行良好 该作业使用 cron 字符串初始化 每 5 分钟运行一次 我想让作业根据环境更改其自身的计划 例如 随着时间的推移会发生错误 因此 cron 应该更改
  • PublishJMS 处理器无法将消息写入 IBM Websphere MQ

    我在通过 PublishJMS 处理器将消息发布到 IBM Websphere MQ 队列时遇到问题 配置PublishJMS处理器和JMS控制器服务 我已经验证MQ连接没有问题 我相信我需要在 PublishJMS 或控制器服务中设置一些
  • 当我选择 UITableViewCell 时,我的视图控制器标签是后面的操作

    我有一个带有表视图的视图控制器 我还有一种方法 当选择表视图的单元格之一时 该方法应该推送到新的视图控制器 新的视图控制器包含一个标签 我希望该标签显示所选单元格内容的全文 目前 当选择单元格时 先前选择的单元格的内容会显示在标签上 这是我
  • 如何在 Haskell 中向 Functor 实例声明添加类约束?

    我定义了以下数据类型 data Probability a PD mass a Ratio Int 现在我想写它是一个实例Functor collect Eq a Num b gt a b gt a b collect al map col
  • 短文本,PHP

    我得到了这个功能 function shorter text chars limit if strlen text gt chars limit return substr text 0 strrpos substr text 0 char
  • Firebase:添加新子项

    当我的应用程序启动时 我会对 Firebase 进行初始提取以提取所有数据 当我稍后将数据添加到 Firebase 时 我只希望它获取已添加的新子项 我目前正在实现这样的目标 有没有更好的方法或内置方法可以在 Firebase 中执行此操作
  • 相对源绑定 Xamarin

    我的问题是视单元 由于它属于 IssueModel 类 所以找不到 OnDelete 命令 我尝试更改 Listview 的绑定上下文 但这不会改变除上述绑定之外的任何内容 有什么方法可以更改视单元的绑定上下文 这样我就不必将命令放入 Is
  • 更新语句:错误:目标表必须是等值连接谓词的一部分

    当我尝试更新表 1 中与表 2 中的列类似的列时 出现此错误 目标表必须是等值连接谓词的一部分 update test set category t1 category from category type t1 test t2 where
  • 焦点损失实施

    In the paper引入焦点损失后 他们指出损失函数的公式如下 Where 我在另一位作者的 Github 页面上找到了它的实现 他在自己的项目中使用了它paper 我在我拥有的分割问题数据集上尝试了该函数 它似乎工作得很好 下面是实现
  • Android 上的 HTTP POST

    我想对 php 脚本创建一个简单的 HTTPRequest 并且我尝试制作最基本的应用程序来使功能正常工作 我想测试我的应用程序是否正在发送我提供给它的数据 因此我已将 Android 应用程序发送到服务器 并且该服务器应该向我发送我放入应
  • javafx 重新计算父/节点边界时如何修复 IndexOutOfBounds 异常

    我正在制作 javafx gui 应用程序 游戏 需要同时更新角色视图 每个移动周期我都会更新角色的 ImageView 如下所示 if inBounds direction Collisions collides newHitbox hi
  • 自动装配工厂创建的实例的 Spring 方法是什么?

    我有一个控制器 它应该创建版本相关的实例 当前未实现 Controller public class ReportController Autowired private ReportCompFactory reportCompFactor
  • 从脚本标签访问车把属性

    在车把模板中 我可以访问脚本标记内的车把参数吗 该模板是从调用的express with response render template list 1 2 3 您可以在 html 中使用包含所需值的隐藏输入 然后在脚本标记中使用 docu
  • 将 python2 'file' 类的子类移植到 python3

    我有一个遗留代码调用class TiffFile file python3的调用方式是什么 我尝试在 python2 中替换以下内容 class TiffFile file def init self path file init self
  • 如何在solr 4中导入并索引mongodb数据

    我是新用户solr and mongodb 我已经创建了数据库和集合mongodb 现在我想导入并索引它mongodb收集于solr对于要在数据库中搜索大量数据的应用程序 我在互联网上搜索了很多 但是没有得到满意的信息 谁能告诉我如何进行索
  • 如何将csv文件数据插入mysql数据库

    我想将 csv 文件中的数据插入到 mysql 表中 导入数据来自区域代码 csv文件 在region codes csv 文件中 第 3 列有 3 列 分隔数据 包括如何在 mysql 中插入的逗号 DROP TABLE IF EXIST
  • Android 屏幕底部选项卡式 Activity

    有人知道为什么在 Android 中新生成的选项卡式活动中底部不在屏幕上吗 ViewPager 对于整个屏幕来说太长
  • 在 QTreeView (Qt/PySide/PyQt) 中实现自动换行委托?

    我有一个带有自定义委托的树视图 我试图向其中添加自动换行功能 自动换行工作正常 但是sizeHint 似乎不起作用 因此当文本换行时 相关行不会扩展以包含它 我以为我在照顾它sizeHint 通过返回document size height
  • pandas 数据框中的自定义排序

    我有 python pandas 数据框 其中一列包含月份名称 如何使用字典进行自定义排序 例如 custom dict March 0 April 1 Dec 3 引入 Pandas 0 15分类系列 这提供了一种更清晰的方法来做到这一点