python - 获取列中的最大值
问题描述
我的数据框如下所示:
Country Code Duration
A 1 0
A 1 1
A 1 2
A 1 3
A 2 0
A 2 1
A 1 0
A 1 1
A 1 2
我需要从“持续时间”列中获取最大值——不仅是最大值,而且是该列中每个数字序列的最大值列表。输出可能如下所示:
Country Code Duration
A 1 3
A 2 1
A 1 2
我本可以按“代码”分组,但它的值经常重复,所以这可能不是一个选择。任何帮助或提示将不胜感激。
解决方案
首先,我们创建一个掩码来标记序列。然后我们 groupby 创建想要的输出:
m = (~df['Code'].eq(df['Code'].shift())).cumsum()
df.groupby(m).agg({'Country':'first',
'Code':'first',
'Duration':'max'}).reset_index(drop=True)
Country Code Duration
0 A 1 3
1 A 2 1
2 A 1 2
推荐阅读
- javascript - Style.visibility 不隐藏元素
- angular - 茉莉花,业力,正确地嘲笑一个承诺
- xamarin - 在 ZXing 上缩放或增强性能
- python - Keras 变分自动编码器示例 - 潜在输入的使用
- javascript - Javascript切片日期/时间带前导零
- bootstrap-4 - Bootstrap 4.1 模式在 IE11 中调整输入焦点的大小
- c - 无法使用 libtirpc 构建 RPC 项目
- java - Java中Biginteger的初始化
- node.js - 如何在生产中安全地使用环境变量机密
- java - 无法在 Eclipse 中使用 gradle 运行黄瓜功能文件。我收到“错误:无法找到或加载主类 cucumber.api.cli.Main”错误