基于分组中的密钥编辑PANDAS数据框架字段



给定此dataframe:

import pandas as pd
  a = pd.DataFrame({
    'id': [1,2,3,4,5],
    'company_id': [11,11,22,33,55],
    'accSync': [True, False, False, False, True]
  })

我需要基于accSync字段对给定的company_id修改所有行,这意味着,如果给定的company_id的任何行都具有真实性,则该company_id的所有行都需要更新为true。。

在这种情况下, company_id 11中有一个True,因此第2行也应更新为2, 11, True,而行1,3,4,5应保持不受影响。

我尝试使用groupbyany的组合,但没有到达任何地方。

iiuc transform

a.groupby('company_id')['accSync'].transform('max')
Out[131]: 
0     True
1     True
2    False
3    False
4     True
Name: accSync, dtype: bool

分配回去

a['accSync']= a.groupby('company_id')['accSync'].transform('max')
def checker(df):
    df["accSync"] = df["accSync"].any()
    return df
new_df = a.groupby(by="company_id").apply(checker)

结果:

   id  company_id  accSync
0   1          11     True
1   2          11     True
2   3          22    False
3   4          33    False
4   5          55     True 

最新更新