Python pandas:groupby列结果以另一列为条件

Python pandas:groupby列结果以另一列为条件,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有一个像这样的df a b 0 A Y 1 A N 2 A N 3 B N 4 B N 5 B N 6 B N 7 C N 8 C Y 我希望groupby列“a”和列“b”应该显示“Y”,只要至少有一个条目是“Y”或“N”,如果所有条目都是“N” a b 0 A Y 1 B N 2 C Y 您正在查找max df.groupby('a').max().reset_index() a b 0 A Y 1 B

我有一个像这样的df

   a  b
0  A  Y
1  A  N
2  A  N
3  B  N
4  B  N
5  B  N
6  B  N
7  C  N
8  C  Y
我希望groupby列“a”和列“b”应该显示“Y”,只要至少有一个条目是“Y”或“N”,如果所有条目都是“N”

   a  b
0  A  Y
1  B  N
2  C  Y

您正在查找
max

df.groupby('a').max().reset_index()

   a  b
0  A  Y
1  B  N
2  C  Y

当进行字符串比较时,
'Y'
大于
'N'
(即,
'Y'>'N'==True
),因此取b列的最大值意味着如果组中只有一个'Y',它将是'Y',否则'N'将是最大值。

。如果您解释max按字母顺序工作,这将对OP有所帮助:
Y
N
回答得好,如果实际数据帧与此处提到的类似,这将完成工作+1。谢谢。如果“b”有“Y”、“N”和“Z”值,如果“N”或“Z”它应该返回“N”,如果有“Y”,它应该返回“Y”?@idt\U tt:您可以在它前面添加一个步骤,用“N”替换“Z”<代码>df['b']=df['b']。替换('Z','N')