pandas - Pandas 数据透视表或 groupby 列的绝对最大值
问题描述
我有一个数据框 df 为:
Col1 Col2
A -5
A 3
B -2
B 15
我需要得到以下信息:
Col1 Col2
A -5
B 15
Col1
通过从 中选择绝对最大值为每个组做出决定Col2
。我不确定如何进行此操作。
解决方案
使用DataFrameGroupBy.idxmax
with 传递索引的绝对值,然后选择 by DataFrame.loc
:
df = df.loc[df['Col2'].abs().groupby(df['Col1']).idxmax()]
#alternative with reassign column
df = df.loc[df.assign(Col2 = df['Col2'].abs()).groupby('Col1')['Col2'].idxmax()]
print (df)
Col1 Col2
0 A -5
3 B 15
推荐阅读
- bash - 登录后运行 bash 脚本
- reactjs - 反应排序方式
- vagrant - 无法配置非最新的 chef-dk 安装
- python - python中矩阵的协方差
- tensorflow - Tensorflow 编码优化:如何更有效地实现这种代码?
- css - 无法在数据表附近添加侧边栏
- xaml - 如何在 Xamarin 中使用 Syncfusion 自定义工具提示的内容和位置?
- regex - 如何为 /check?id=984c3a7b-766b-450e 设计 URL 模式?
- javascript - Firestore 选择字段为空的位置
- json - shell脚本如何打开和读取文件中的特定行并将值传递给json