首页 > 解决方案 > 根据多行分组条件更改熊猫列中的单元格值

问题描述

我有一个包含三列的熊猫数据框:

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

最终的数据框将是:


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 中的以下逻辑?

标签: pythonpandasdataframepandas-groupby

解决方案


你可以试试:

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)

推荐阅读