python - 根据多行分组条件更改熊猫列中的单元格值
问题描述
我有一个包含三列的熊猫数据框:
import pandas as pd
di={'id':[1,1,2,3,4,4],'b':['Sydney','Bexley','Arncliffe','Hurstville','Bexley North','Carlton'],
'c':['contra','contra','contra_approved','contra','contra_approved','contra']}
df=pd.DataFrame(di)
df.head(10)
id b c
1 Sydney contra
1 Bexley contra
2 Arncliffe contra_approved
3 Hurstville contra
4 Bexley North contra_approved
4 Carlton contra
每个id都应该在'c'列中有一个关键字contra_approved。
- 对于带有关键字' contra '的一个值的 id,我需要更改为contra_approved(例如 id 3)
- 对于具有关键字 contra 且其中没有任何一个为contra_approved的多行 id ,我需要将id相关行中的第一次出现更改为contra_approved(例如 id 1)。
最终的数据框将是:
id b c
1 Sydney contra_approved
1 Bexley contra
2 Arncliffe contra_approved
3 Hurstville contra_approved
4 Bexley North contra_approved
4 Carlton contra
如何解释 pandas 中的以下逻辑?
解决方案
你可以试试:
def f(d):
if "contra_approved" not in d["c"].unique():
d.loc[d.index[0], "c"] = "contra_approved"
return d
df = df.groupby("id").apply(f)
推荐阅读
- spring-boot - 如何在不使用 Firebase 的情况下在 GCP 中使用 Springboot 部署多个 CloudFunction
- javascript - 如何在 Konva 中正确设置过滤器?
- javascript - Vuex-ORM 插入和合并两个相互关联的 api 调用
- ajax - 将我自己的 Alexa 购物清单提取到 Bootstrap 表中
- reactjs - 为什么在我不更改我的 useEffect 挂钩的任何依赖项的情况下触发了“exhaustive-deps”规则?
- php - 升级 Laravel 和 PHP 的步骤
- android - 如何提取压缩的rom
- angular - 如何解决日历问题,导致它不选择未来?
- post - 邮递员 - 无法发送 Post Twilio API 请求
- tensorflow - nvidia-smi gpu-util 含义