Python Excel如果一列包含唯一值,而另一列包含一个真值,则返回这些唯一值的所有真值

Python Excel如果一列包含唯一值,而另一列包含一个真值,则返回这些唯一值的所有真值,python,excel,pandas,unique,countif,Python,Excel,Pandas,Unique,Countif,我在Exel(365版本)中有一个超过78K行的大文件。我正在尝试编写一个公式,该公式将返回一个True或False值,该值取决于列a中的唯一值(21K唯一值),如果列B中的任何值为True,然后列C应为列a中的唯一值范围返回一个True值 例如,我有以下数据: Column A Column B 1 True 1 False 1 False 2 False 2 False 3

我在Exel(365版本)中有一个超过78K行的大文件。我正在尝试编写一个公式,该公式将返回一个
True
False
值,该值取决于
列a
中的唯一值(21K唯一值),如果
列B
中的任何值为
True
,然后
列C
应为
列a
中的唯一值范围返回一个
True

例如,我有以下数据:

Column A     Column B
1            True
1            False
1            False
2            False
2            False
3            False
3            True
我希望
列C
显示以下内容:

Column A     Column B     Column C
1            True         True
1            False        True
1            False        True
2            False        False
2            False        False
3            False        True
3            True         True
换句话说,对于
列A
中的每个唯一值,如果
列B
中的任何对应值为
,我希望
列C
中的所有值都声明

在多次尝试不同的公式之后,我想我可能发现了与以下公式相近的东西,但对于每个单元格,它都返回
True
。我不确定我错过了什么

=+IF(AND(UNIQUE($A$1:$A$7)),COUNTIF($B$1:$B$7,"TRUE")>0,1)
我的数据没有任何缺失值

我在这个网站上搜索了我正在尝试的东西,但上面的公式是我能找到的最接近的公式。很接近,但不是我想要的

我知道我可以用下面的公式手动执行此操作,但是在
列A
中有超过21K个唯一值,如果不需要,我不想手动执行此操作

=+COUNTIF($B$1:$B$3,"TRUE")>0

如果这在Python中更容易执行,那么该代码将非常有用。我是Python新手,对Excel更熟悉,但理解Python可能更容易、更快。

这就是我在pandas中处理此问题的方式

print(df)
#note i've added in a non duplicated row for testing.


   Column_A  Column_B
0         1      True
1         1     False
2         1     False
3         2     False
4         2     False
5         3     False
6         3      True
7         4      True
首先,我将编写两个布尔表达式,第一个是查看是否有任何值重复,第二个是查看列_B是否包含任何真值。如果两者都等于真,我想将A列中的所有ID都传递到列表中

vals = df.loc[df.duplicated(subset=["Column_A"], keep=False) 
              & df["Column_B"].eq(True),
             "Column_A"].tolist()

print(vals)

[1, 3]
现在我们知道了值是什么,我们可以编写一个简单的布尔赋值

df['Column_C'] = df['Column_A'].isin(vals)

print(df)
   Column_A  Column_B  Column_C
0         1      True      True
1         1     False      True
2         1     False      True
3         2     False     False
4         2     False     False
5         3     False      True
6         3      True      True
7         4      True     False

当您标记python时,您是否正在使用
pandas
api?或者另一个库?Python中的api。