根据分组关键字编辑熊猫数据框字段

时间:2019-05-16 16:19:32

标签: python 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]
  })

我需要基于company_id字段为True来修改给定accSync的所有行,这意味着如果给定company_id的任何行中都包含true,则所有行因为company_id也需要更新为真实。

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

我尝试使用groupbyany的组合,但没有成功。

2 个答案:

答案 0 :(得分:2)

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')

答案 1 :(得分:0)

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

结果:

{{1}}