【问题标题】:Adding new column to pandas df based on condition根据条件向 pandas df 添加新列
【发布时间】:2020-06-09 03:39:00
【问题描述】:

我有以下数据集:

ID   Asset   Boolean
1     "A"    True  
1     "B"    False  
1     "B"    False   
2     "A"    True
3     "A"    True
3     "A"    True
3     "B"    False
3     "B"    False
4     "A"    True
4     "A"    True
5     "A"    True
5     "B"    False

我想添加另一列,只有当列Boolean 中的所有值对于相同的ID 评估为 True 时,它​​才应该评估为 True。 所以是这样的:

ID   Asset   Boolean  Check
1     "A"    True     False
1     "B"    False    False
1     "B"    False    False
2     "A"    True     True
3     "A"    True     False
3     "A"    True     False
3     "B"    False    False
3     "B"    False    False
4     "A"    True     True
4     "A"    True     True
5     "A"    True     False
5     "B"    False    False

我想为过滤器选项保留原始数据集。 我不知道如何在考虑 ID 列的情况下遍历 Boolean 列。

【问题讨论】:

    标签: python pandas series


    【解决方案1】:

    您可以将GroupBytransformall 联系起来:

    df['Check'] = df.groupby('ID').Boolean.transform('all')
    
    print(df)
    
        ID Asset  Boolean  Check
    0    1     A     True  False
    1    1     B    False  False
    2    1     B    False  False
    3    2     A     True   True
    4    3     A     True  False
    5    3     A     True  False
    6    3     B    False  False
    7    3     B    False  False
    8    4     A     True   True
    9    4     A     True   True
    10   5     A     True  False
    11   5     B    False  False
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-03
      • 1970-01-01
      • 2021-06-20
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多