首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python:分组后分别对组使用apply

Python:分组后分别对组使用apply
EN

Stack Overflow用户
提问于 2018-04-15 05:15:45
回答 1查看 42关注 0票数 1

我的数据框架如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
┌────┬──────┬──────┐
│ No │ col1 │ col2 │
├────┼──────┼──────┤
│  1A5.0 │
│  1B110.0 │
│  1B220.0 │
│  2A0.0 │
│  2B10.0 │
│  2C10.0 │
│  3A0.0 │
│  3B15.0 │
│  3C120.0 │
│  3C230.0 │
└────┴──────┴──────┘

首先,我使用groupby对数据帧按列编号进行分组。

我现在想做三件事:

  1. 从No列获取该组所有行中的col2 == 0.0值列表(在本例中为第2号)
  2. 获取“No's where”( col2 != 0.0 for col1 == 'A' )的列表,但组中至少有一个行具有col2 == 0.0 (在本例中为第3行)
  3. 获得最少1行包含col2 == 0.0的No's列表(第2和第3行)

很抱歉一次问了三个问题。希望这样可以。

谢谢您:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-15 05:25:57

您可以使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
g = df['col2'].eq(0).groupby(df['No'])
a = g.all()
a = a.index[a].tolist()
print (a)
[2]

b1 = (df['col2'].ne(0) & df['col1'].eq('A')).groupby(df['No']).any()
b2 = (df['col2'].eq(0) & df['col1'].ne('A')).groupby(df['No']).any()
b = b1 & b2
b = b.index[b].tolist()
print (b)
[]

c = g.any()
c = c.index[c].tolist()
print (c)
[2,3]

另一种解决方案应该是自定义函数,用于返回布尔型DataFrame和包含3个列表的最终创建字典:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def f(x):
    a = x['col2'].eq(0)
    b1 = x['col2'].ne(0) & x['col1'].eq('A')
    b2 = a & x['col1'].ne('A')
    b = b1.any() & b2.any()

    return pd.Series([a.all(), b, a.any()], index=list('abc'))

m = df.groupby('No').apply(f)
print (m)
        a      b      c
No                     
1   False  False  False
2    True  False   True
3   False  False   True

fin = {x: m[x].index[m[x]].tolist() for x in m.columns}
print (fin)
{'a': [2], 'b': [], 'c': [2, 3]}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49842343

复制
相关文章
DOMContentLoaded实现
IE系列直到IE9才支持DOMContentLoaded事件,对于IE8及其之前版本,如果html内没有框架,则可以采用document.documentELement.doScroll来判断 是否构建好DOM树;如果html内有框架,则利用document的onreadystatechange事件判断当前DOM树是否构建完毕(框架html内容(只是html文件)加载之后DOM树构建完毕)。 所以可以采用这种方式: /** * 实现DomContentLoaded的兼容性
欲休
2018/03/15
5860
为什么LONGNET可以处理10亿个令牌
Vaswani等人在2017年引入的Transformers是LLM和许多其他机器学习任务的基石。它成功的主要原因之一是自注意力机制。但是随着模型的扩大这种机制成为计算瓶颈,特别是对于长序列。
deephub
2023/08/30
2550
为什么LONGNET可以处理10亿个令牌
DOMContentLoaded和window.onload
相信写js的。都知道window.onload吧,可是并非每一个人都知道DOMContentLoaded,事实上即使你不知道。非常有可能你也常常使用了这个东西。
全栈程序员站长
2022/07/06
1.5K0
从 8 道面试题看浏览器渲染过程与性能优化
移动互联网时代,用户对于网页的打开速度要求越来越高。百度用户体验部研究表明,页面放弃率和页面的打开时间关系如下图 所示。
null仔
2020/03/02
1.2K0
微信小程序阻止事件冒泡
江拥羡橙
2023/02/24
2.9K0
微信小程序阻止事件冒泡
文档解析和DOMContentLoaded触发时机
| 导语 大家都知道 HTML 文档完全加载和解析完成之后,会触发 DOMContentLoaded 事件,那么 HTML 里面的内容会如何影响文档解析呢?在解析过程中遇到 script 标签或者 link 标签时,解析会受影响吗?我们通过不同情况举例和 HTML5 规范一起分析一下。 DOMContentLoaded 触发定义 HTML 文档被完全加载和解析完成之后,会触发 DOMContentLoaded 事件,通常外部样式表和文档内的图片加载都不会影响该事件触发,不过也有特殊情况,我们后面会提到。 如
用户1097444
2022/06/29
7820
文档解析和DOMContentLoaded触发时机
前端资源浏览器渲染原理
当有了DOM Tree和 CSSOM Tree后,就可以两个结合来构建Render Tree了
冷环渊
2023/02/26
5750
前端资源浏览器渲染原理
【前端】:async、defer、onload、DOMContentLoaded
The HTML <script> element is used to embed or reference executable code; this is typically used to embed or refer to JavaScript code.
WEBJ2EE
2019/12/31
1.9K0
【前端】:async、defer、onload、DOMContentLoaded
【python图像处理】python绘制
3D图形在数据分析、数据建模、图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何使用python进行3D图形的绘制,包括3D散点、3D表面、3D轮廓、3D直线(曲线)以及3D文字等的绘制。
py3study
2020/01/10
1.5K0
【python图像处理】python绘制
第一次遭遇挖矿程序
问题分析 1. 两台服务器收到告警,top 查看进程发现如下可疑进程 # top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 19078 vmuser 20 0 680232 14284 1032 S 342.8 0.1 1583:11 md 501 vmuser 20 0 32348 3264 760 R 55.9 0.0 2172:49 [at
tanmx
2018/07/16
1.4K0
第一次绘制K线图与网络图
The following objects are masked from ‘package:base’:
黑妹的小屋
2020/08/06
8970
为什么开源可以提高程序员的编程技能?
为什么开源可以提高程序员的编程技能? 我已经写了很多年的软件。最近我意识到,我越涉及(致力于,结合于等)开源技术,我写出来的代码就更好。这不由地让我疑惑起来:难道里面有什么相关性或因果关系吗? 阅
用户1289394
2018/02/27
6790
为什么开源可以提高程序员的编程技能?
为什么开源可以提高程序员的编程技能?
我已经写了很多年的软件。最近我意识到,我越涉及(致力于,结合于等)开源技术,我写出来的代码就更好。这不由地让我疑惑起来:难道里面有什么相关性或因果关系吗?
哲洛不闹
2018/09/18
3480
为什么开源可以提高程序员的编程技能?
为什么开源可以提高程序员的编程技能?
我已经写了很多年的软件。最近我意识到,我越涉及(致力于,结合于等)开源技术,我写出来的代码就更好。这不由地让我疑惑起来:难道里面有什么相关性或因果关系吗? 阅读代码能让你变得更优秀 我在编程生涯的早期就明白我阅读的代码越多,我的代码就能变得更好。我知道,当我不得不维护其他人的代码时,简单和干净的代码几乎总是比花哨或复杂 的代码好—— 即使有注释。然而另一方面,当我花足够的时间去理解复杂代码的时候,我常常能够学到新的技巧。不论怎么样,都能让我有所提高。 这使得我在那些没有代码审查的地方一再争取。而当没有足够的
wangxl
2018/03/08
6610
css是否会阻塞与DOMContentLoaded
原本只是想分享Network的一些内容,结果到DOMContentLoaded的时候给卡住了,网上很多强调css不会阻塞DOM解析,可以说对又可以说不对。
wade
2021/05/28
6980
css是否会阻塞与DOMContentLoaded
HTML解析之DOMContentLoaded和onload
在很久很久以前,我在封装自己的JQuery库时就使用过DOMContentLoaded,觉得这个知识点看看别的文章就行了,不过现在我想把它记下来。
全栈程序员站长
2022/11/16
1.6K0
HTML解析之DOMContentLoaded和onload
为什么开源可以提高程序员的编程技能?
我已经写了很多年的软件。最近我意识到,我越涉及(致力于,结合于等)开源技术,我写出来的代码就更好。这不由地让我疑惑起来:难道里面有什么相关性或因果关系吗? 阅读代码能让你变得更优秀 我在编程生涯的早期
用户1667431
2018/04/18
6170
为什么开源可以提高程序员的编程技能?
机器为什么可以学习
机器学习、人工智能炙手可热,但是机器到底为什么可以学习呢?本文将从霍夫丁不等式讲到VC维,探究机器学习的原因所在。 机器怎么可能学习 机器确实可能会学习 机器为什么可以学习 机器学习的一
用户1147754
2018/01/02
8380
机器为什么可以学习
java应用被阻止_怎样解决运行java提示应用程序已安全设置被阻止[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。 Win7系统运行java时出现提示应用程序已安全设置被阻止,这样就导致运行java失败,那么怎样解决运行java提示应用程序已安全设置被阻止呢?下面跟着学习啦
全栈程序员站长
2022/09/08
4.4K0
java 网页提示被阻止怎么办,应用程序已被java安全阻止怎么办
1、完成JAVA版本更新,然后刷新有问题的网页页面,以排除JAVA版本问题引起JAVA安全阻止;
全栈程序员站长
2022/09/08
6.4K0
java 网页提示被阻止怎么办,应用程序已被java安全阻止怎么办

相似问题

将一年中的日期转换为java中的日期

25

如何将POSIX日期转换为一年中的日期?

59

在Server中将年中的日期转换为日期

11

将0转换为日期和日期

45

将一年中的星期转换为日期

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文