给定以下数据框

In [31]: rand = np.random.RandomState(1)

df = pd.DataFrame({'A': ['foo', 'bar', 'baz'] * 2,

'B': rand.randn(6),

'C': rand.rand(6) > .5})

In [32]: df

Out[32]: A B C

0 foo 1.624345 False

1 bar -0.611756 True

2 baz -0.528172 False

3 foo -1.072969 True

4 bar 0.865408 False

5 baz -2.301539 True

我想按A的合计总和(然后按B中的值(不合计))按组(C)对它进行排序。所以基本上得到A组的顺序

In [28]: df.groupby('A').sum().sort('B')

Out[28]: B C

A

baz -2.829710 1

bar 0.253651 1

foo 0.551377 1

然后通过对/错,最终看起来像这样:

In [30]: df.ix[[5, 2, 1, 4, 3, 0]]

Out[30]: A B C

5 baz -2.301539 True

2 baz -0.528172 False

1 bar -0.611756 True

4 bar 0.865408 False

3 foo -1.072969 True

0 foo 1.624345 False

如何才能做到这一点?

参考方案

Groupby A:

In [0]: grp = df.groupby('A')

在每个组中,对B求和,然后使用transform广播值。然后按B排序:

In [1]: grp[['B']].transform(sum).sort('B')

Out[1]:

B

2 -2.829710

5 -2.829710

1 0.253651

4 0.253651

0 0.551377

3 0.551377

通过从上方传递索引来索引原始df。这将按B值的总和对A值重新排序:

In [2]: sort1 = df.ix[grp[['B']].transform(sum).sort('B').index]

In [3]: sort1

Out[3]:

A B C

2 baz -0.528172 False

5 baz -2.301539 True

1 bar -0.611756 True

4 bar 0.865408 False

0 foo 1.624345 False

3 foo -1.072969 True

最后,使用sort=False选项对“A”组中的“C”值进行排序,以保留第1步中的A排序顺序:

In [4]: f = lambda x: x.sort('C', ascending=False)

In [5]: sort2 = sort1.groupby('A', sort=False).apply(f)

In [6]: sort2

Out[6]:

A B C

A

baz 5 baz -2.301539 True

2 baz -0.528172 False

bar 1 bar -0.611756 True

4 bar 0.865408 False

foo 3 foo -1.072969 True

0 foo 1.624345 False

通过使用reset_index和drop=True清理df索引:

In [7]: sort2.reset_index(0, drop=True)

Out[7]:

A B C

5 baz -2.301539 True

2 baz -0.528172 False

1 bar -0.611756 True

4 bar 0.865408 False

3 foo -1.072969 True

0 foo 1.624345 False

Python Pandas:按分组分组,平均? - python

我有一个像这样的数据框:cluster org time 1 a 8 1 a 6 2 h 34 1 c 23 2 d 74 3 w 6 我想计算每个集群每个组织的平均时间。预期结果:cluster mean(time) 1 15 ((8+6)/2+23)/2 2 54 (74+34)/2 3 6 我不知道如何在熊猫中做到这一点,有人可以帮忙吗? 参考方案 如…Python Pandas:在多列上建立布尔索引 - python

尽管至少有关于如何在Python的pandas库中为DataFrame编制索引的two good教程,但我仍然无法在一个以上的列上找到一种优雅的SELECT编码方式。>>> d = pd.DataFrame({'x':[1, 2, 3, 4, 5], 'y':[4, 5, 6, 7, 8]}) &gt…python pandas:按行对条件进行分组 - python

我有一个大的pandas数据框,试图从中形成一些行的对。我的df如下所示:object_id increment location event 0 1 d A 0 2 d B 0 3 z C 0 4 g A 0 5 g B 0 6 i C 1 1 k A 1 2 k B ... ... ... ... 对象ID描述特定的对象。增量是每次发生某事(跟踪订单)时…python :安装 python 后,如何导入 Pandas - python

我已经安装了 python 。现在,当我尝试跑步时import pandas as pd 我收到以下错误Traceback (most recent call last): File "", line 1, in import pandasFile ImportError: …Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…

python pandas excel 排序_Pandas 按组汇总和列排序 - python相关推荐

  1. python dataframe根据多列排名并生成序号_将rank字段添加到pandas dataframe,按唯一组和多列排序...

    假设我有这个数据帧,我希望每个唯一的用户ID都有自己的基于日期戳的排名值:In [93]: df = pd.DataFrame({ 'userid':['a', 'a', 'a', 'a', 'b', ...

  2. Python读写Excel数据(指定某行某列)

    Python读写Excel数据(指定某行某列) 在Python数据处理中,经常需要对Excel表格进行读写操作,本文的代码介绍了如何通过行与列的下标进行数据的读写:代码对数据格式有要求,读数据要求文件 ...

  3. linux 文件按某列排序,sort如何按指定的列排序,linux按照指定列对文件排序

    linux按照指定列对文件排序 sort如何按指定的列排序 0000            27189           41925425 065f            15           ...

  4. python pandas excel 排序_Python pandas对excel的操作实现示例

    最近经常看到各平台里都有Python的广告,都是对excel的操作,这里明哥收集整理了一下pandas对excel的操作方法和使用过程.本篇介绍 pandas 的 DataFrame 对列 (Colu ...

  5. python pandas excel 排序_python – Pandas – 使用datetimeindex对数据帧进行排序

    以下是我的数据框,其中包含多个Excel文件的值.我想做一个时间序列分析,所以我把索引作为datetimeindex.但我的索引没有根据日期安排.以下是我的数据框: Item Details Unit ...

  6. python pandas excel数据处理_Python处理Excel数据-pandas篇

    Python处理Excel数据-pandas篇 非常适用于大量数据的拼接.清洗.筛选及分析 在计算机编程中,pandas是Python编程语言的用于数据操纵和分析的软件库.特别是,它提供操纵数值表格和 ...

  7. 【python pandas excel操作】

    目录 1.打开Excel,获取不同sheet的名称 2.获取不同sheet的内容 3. 获取行数以及表头 4.对某一列的信息进行筛选 5.根据列号和索引号提取一行或者一列的数据 6.其他panda对E ...

  8. python pandas 官网_Pandas 最详细教程

    Python 是开源的,它很棒,但是也无法避免开源的一些固有问题:很多包都在做(或者在尝试做)同样的事情.如果你是 Python 新手,那么你很难知道某个特定任务的最佳包是哪个,你需要有经验的人告诉你 ...

  9. python办公自动化excel_超简单:用Python让Excel飞起来 王秀文 等 零基础 python 办公自动化 Excel 数据分析 数据可视化 9787111659761...

    前言如何获取学习资源*1章 Python快速上手1.1为什么要学习用Python控制Excel 131.2Python编程环境的搭建 131.2.1安装Python官方的编程环境IDLE 131.2. ...

最新文章

  1. 基本完成了一个SEGY扫描程序
  2. MongoDB 监测
  3. Java自定义Exception
  4. java结构体构建学生 学号_易错题: 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。...
  5. python中readlines,在Python中连续两次使用readlines
  6. 第五章· MySQL数据类型
  7. php 获取 js json数据类型,JS基础-JS的数据类型和访问/流程控制/JSON格式字符串和js对象相互转换...
  8. 学C++的你今天鄙视PHP了吗?
  9. WP百度搜索推送管理插件
  10. 安卓程序运行后控件不显示_智能镜子显示屏掀起了智能家居行业的新潮流
  11. AM5728通过GPMC接口与FPGA高速数据通信实现
  12. 如何.gitignore文件夹中的所有文件/文件夹,但不是文件夹本身? [重复]
  13. 实战Vue:ToDoList
  14. xcode9无线调试都在这里
  15. 电力猫服务器无响应,电力猫怕什么?TP-Link电力线适配器实测
  16. ImageIO复制图片大小改变
  17. Vue 动态响应数据变化
  18. [数字媒体] PR视频剪辑之竖屏实现横屏旋转切换和大视频文件缩小
  19. Unity 3D 如何获取鼠标移动事件
  20. 二项式定理与多变量函数的泰勒展开_拔剑-浆糊的传说_新浪博客

热门文章

  1. jquery仿搜狐投票动画代码
  2. XML解析:PULL解析
  3. atime、ctime 和 mtime区别
  4. 2018.7.28 二叉树的遍历规则(前序遍历、后序遍历、中序遍历)
  5. eclipse: The superclass javax.servlet.http.HttpServlet was not found 解决方案
  6. 对已经add的文件不在跟踪
  7. 用极大化思想解决最大子矩形问题
  8. 使用jQuery获取GridView的数据行的数量
  9. flex if(a is b){},flex if(a as b){} 意思
  10. checkboxlist详细用法、checkboxlist用法、checkboxlist