python - 根据 groupby 输出更新列值
问题描述
我有多索引 df,其中一个日期索引可以有多个记录。如何更新col_2
每个bond_name
的最大值col_1
?我有的:
date bond_name col_1 col_2
2020-11-15 aaa 0.5 t1
bbb 0.5 t1
2020-11-16 ccc 0.75 t1
2020-11-20 bbb 0.9 t1
ddd 0.9 t1
2020-11-29 ddd 0.95 t1
和所需的输出:
date bond_name col_1 col_2
2020-11-15 aaa 0.5 t2
bbb 0.5 t1
2020-11-16 ccc 0.75 t2
2020-11-20 bbb 0.9 t2
ddd 0.9 t1
2020-11-29 ddd 0.95 t2
解决方案
检查与idxmax
df.loc[df.groupby('date')['col_1'].idxmax(),'col_2'] = 't2'
df
Out[83]:
col_1 col_2
date bond_name
2020-11-15 aaa 0.50 t2
bbb 0.50 t1
2020-11-16 ccc 0.75 t2
2020-11-20 bbb 0.90 t2
ddd 0.90 t1
2020-11-29 ddd 0.95 t2
推荐阅读
- sql - 升级后,如何用基于另一个表的现有值的值填充新表?
- c# - 如何在 C# 中的方法之间传递变量?
- scala - Apache Spark 为 csv 错误找到多个来源
- php - 使用另一个数组中的值创建和数组,但仅当该值出现一定次数时
- angular - Angular:在每次路线更改时检查打开模式
- python - Django 中的 Plotly Dash 应用程序在 __init__() 位置参数上抛出 TypeError
- javascript - asnycData 在 NuxtJs 中的页面重新加载上不起作用
- git - GIT在不同分支中具有不同名称的相同文件
- javascript - JavaScript onclick 改变图片并增加计数器
- javascript - EventListener 使用 JS 创建 RGB 调色板的问题