Условие выполнения функции - PullRequest
1 голос
/ 21 мая 2019

Существует функция, которая считает скользящее среднее столбца Y:

df['Y1'] = df.apply(
    lambda x: df.loc[
        (
            (df.X2 < x.X2)
            & (df.X2 >= (x.X2 + pd.DateOffset(days=-4)))
            & (df.X3 == x.X3)
            & (df.X4 == x.X4)
        ),
        "Y",
    ].mean(),
    axis=1,
)

Как мне ввести условие X5 = 1, при котором эта функция будет выполняться. Если X5 = 1, то мы вычисляем среднее значение, если нет, то Y1 остается пустым.

Уточню, говоря о значении X5 в текущей строке.

1 Ответ

0 голосов
/ 21 мая 2019

Вы можете заключить это в if-else:

lambda x: np.nan if X5 != 1 else df.loc[
    (
        (df.X2 < x.X2)
        & (df.X2 >= (x.X2 + pd.DateOffset(days=-4)))
        & (df.X3 == x.X3)
        & (df.X4 == x.X4)
    ),
    "Y",
].mean(),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...