pandas python groupby_python – 如何在Pandas groupby之后获得多个条件操作?
考虑以下示例:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
'foo', 'bar', 'foo', 'foo'],
'B' : [12,10,-2,-4,-2,5,8,7],
'C' : [-5,5,-20,0,1,5,4,-4]})
df
Out[12]:
A B C
0 foo 12 -5
1 bar 10 5
2 foo -2 -20
3 bar -4 0
4 foo -2 1
5 bar 5 5
6 foo 8 4
7 foo 7 -4
这里我需要为A中的每个组计算B中以C为条件的元素之和为非负(即,> = 0,基于另一列的条件).反之亦然C.
但是,我的代码失败了.
df.groupby('A').agg({'B': lambda x: x[x.C>0].sum(),
'C': lambda x: x[x.B>0].sum()})
AttributeError: 'Series' object has no attribute 'B'
所以似乎应用是首选(因为apply会看到我认为的所有数据帧),但不幸的是我不能使用带有apply的字典.所以我被困住了.有任何想法吗?
一个不那么漂亮的不那么有效的解决方案是在运行groupby之前创建这些条件变量,但我确信这个解决方案不会使用Pandas的潜力.
因此,例如,组栏和列B的预期输出将是
+10 (indeed C equals 5 and is >=0)
-4 (indeed C equals 0 and is >=0)
+5 = 11
另一个例子:
group foo和B列
NaN (indeed C equals -5 so I dont want to consider the 12 value in B)
+ NaN (indeed C= -20)
-2 (indeed C=1 so its positive)
+ 8
+NaN = 6
注意我使用NaN而不是零,因为如果我们要放零,则除了sum之外的其他函数会给出错误的结果(中位数).
换句话说,这是一个简单的条件求和,其中条件基于另一列.
谢谢!
pandas python groupby_python – 如何在Pandas groupby之后获得多个条件操作?相关推荐
- pandas python groupby_python – 如何使用pandas groupby汇总多个列?
我有一个看起来像的数据框 day type col d_1 d_2 d_3 d_4 d_5... 1 A 1 1 0 1 0 1 A 2 1 0 1 0 2 B 1 1 1 0 0 也就是说,我有一个 ...
- pandas python groupby_Python Pandas与Groupby的条件和
第一组按key1列:In [11]: g = df.groupby('key1') 然后,对于每个组,取key2等于"1"的子dataframe并对data1列求和:In [12] ...
- pandas python groupby_python – pandas groupby方法实际上是如何工作的?
当你使用时 df.groupby('A') 你得到一个groupby object.你还没有应用任何功能.在引擎盖下,虽然这个定义可能不完美,但您可以将groupby对象视为: >(group, ...
- python pandas excel 慢,如何在pandas中使用read_excel提高进程速度?
无需猜测即可阅读所有工作表 对pd.read_excel使用sheetname = None参数.这将把所有工作表读入数据帧的字典中.例如: dfs = pd.read_excel('file.xls ...
- Python数据分析小技巧:如何在Pandas中实现数据透视表?
Python数据分析小技巧:如何在Pandas中实现数据透视表? 数据透视表是数据分析中非常有用的工具,可以帮助我们快速了解数据的结构.关联和趋势.在Pandas中,我们可以使用pivot_table ...
- Python 数据分析三剑客之 Pandas(六):GroupBy 数据分裂、应用与合并
CSDN 课程推荐:<迈向数据科学家:带你玩转Python数据分析>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python ...
- python的loc函数_如何在pandas中使用loc、iloc函数进行数据索引(入门篇)
在数据分析过程中,很多时候我们需要从数据表中提取出我们需要的部分,而这么做的前提是我们需要先索引出这一部分数据.今天我们就来探索一下,如何在pandas中使用loc函数和iloc函数索引数据. 今天我 ...
- Python数据分析入门之pandas基础总结
Pandas--"大熊猫"基础 Series Series: pandas的长枪(数据表中的一列或一行,观测向量,一维数组...) Series1 = pd.Series(np.r ...
- Python科学计算之Pandas基础学习
Python科学计算之Pandas基础学习 导入Pandas 我们首先要导入我们的演出明星--Pandas. 这是导入Pandas的标准方式.显然,我们不希望每时每刻都在程序中写'pandas',但是 ...
最新文章
- mybatis报错There is no getter for property named '***' in 'class ***'
- 30~60万|项目需求——胳膊与手指的动态识别技术
- python机械臂仿真_VTK与Python实现机械臂三维模型可视化详解
- JavaScript基础 -- js常用内置方法和对象
- (8)Linux内核中的hash与bucket
- Broadcasting in Python
- centos7 keeplive+lvs
- IBM SPSS Statistics定义变量使用介绍
- 自制游戏手柄joystick stm32 hal usb协议
- 直角三角形用计算机怎么做,App Store 上的“直角三角形计算器”
- 1319 移棋子游戏(sg函数模板)
- 华为路由器BGP简单配置
- Office之word如何删除页眉横线
- 两台计算机共享鼠标,总算发现什么是双模键盘(两台电脑共用一套鼠标键盘)
- 谷歌图片的爬虫库(附加必应图片爬虫)--针对近期谷歌变了
- 嵌入式开发基本环境搭建---ubuntu
- linux parted 方式挂盘,支持大于4T盘扩容
- 2018,程序员生活的两个兴趣爱好
- SpringBoot XStream整合
- 基于【GIS地理信息+实景三维】在一体化地质灾害监测预警平台中的核心应用
热门文章
- 新装电脑系统,会自动安装乱七八糟的软件问题处理法
- 4411 三仙归洞(找规律-周期)
- 数据结构—图(Part Ⅱ)—最小生成树 最短路径
- C++小游戏——俄罗斯方块
- 网络上的优美感人句子
- 主流浏览器上HTML5多媒体播放器的实现以及加速方式
- 程序验证(五):一阶理论的过程
- linux的最新内核版本是多少,求问Linux最新内核版本以及发布日期。
- 文献阅读笔记 # Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
- 《真心话大冒险》微电影启动 张宁江献青涩初吻_0