У меня есть фрейм данных, например:
df_1 = pd.DataFrame({'X' : ['A','A','A','A','B','B','B'],
'Y' : [1, 0, 1, 1, 0, 0,'Nan']})
Я бы хотел сгруппировать его по X и создать столбец Z:
df_2 = pd.DataFrame({'X' : ['A','B'],
'Z' : [0.5, 0.5]})
Но описать сложноЯ хотел бы применить эту функцию:
def fun(Y,Z):
if Y == 1:
Z = Z + 1
elif Y == 0:
Z = Z - 1
Итак, первый Y в df_1 - это 1, то есть в группе A, поэтому Z для группы A увеличивается до 1,5.Затем следующий равен 0, поэтому он возвращается к 0,5, затем есть еще 2 единицы, поэтому он заканчивается на 2,5.
Что даст мне:
X Z
A 2.5
B -1.5