我有一个这样的Pandas DataFrame:
df = pd.DataFrame({'GROUP':['A1', 'A1', 'B2', 'B2', 'B2', 'C3', 'C3'], 'X':[1, -1, -1, 1, -1, -1, 1], 'Y': [-1, 0, 1, -1, -1, -1, -1], 'Z': [-1, -1, -1, -1, 0, 1, -1]})
df
GROUP X Y Z
0 A1 1 -1 -1
1 A1 -1 0 -1
2 B2 -1 1 -1
3 B2 1 -1 -1
4 B2 -1 -1 0
5 C3 -1 -1 1
6 C3 1 -1 -1
我想通过GROUP
有条件地连接每个组的df,这样它将列中的值连接为1或0(两个优先级相同),如果组在那里,则连接为-1。
预期结果:
GROUP X Y Z
0 A1 1 0 -1
1 B2 1 1 0
2 C3 1 -1 1
2条答案
按热度按时间dxxyhpgq1#
如果每个组始终只有一个
0
或1
,则聚合max
:如果每组
0
和1
都有优先级,并且0
具有更高的优先级,则可以用途:sirbozc52#
由于
1
和0
都大于-1
,因此您可以简单地使用max
来获得所需的结果:输出: