У меня есть датафрейм с сессиями для каждого пользователя. Одна из колонок - сессии до сих пор. Некоторые из этих сеансов имеют нулевые значения. Я считаю, что я мог бы использовать методы fillna и transform, чтобы соответствующим образом заполнить фрейм данных.
import pandas as pd
df = pd.DataFrame({'user': [A, A, A, A, A, B, B, B, B, C, C, C, C, C], 'sessions': [28, NaN, NaN, NaN , 32, NaN, NaN,NaN,12, NaN,15, NaN, 17,NaN]})
Ожидаемый выходной фрейм данных:
df_out = pd.DataFrame({'user': [A, A, A, A, A, B, B, B, B, C, C, C, C, C], 'sessions': [28, 29, 30, 31 , 32, 9, 10, 11,12, 14,15,16,17,18]})
Пробный код:
df['sessions'] = df['sessions'].fillna(df.groupby('user')['sessions'].transform('mean'))
Это работает, если я должен был заполнить среднее значение, и это насколько я могдумать. Пожалуйста, предложите несколько подходов.
PS - Начальное значение сеанса не 1. Я делаю это из моментального снимка в некоторый момент времени. У меня нет данных, возвращающихся до сессии № 1 для каждого пользователя.