Python pandas:groupby列结果以另一列为条件
我有一个像这样的dfPython 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
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')