Анализатор даты и времени Python Pandas, группировка и поиск первого значения - PullRequest
0 голосов
/ 25 октября 2018

У меня есть следующая задача:

У меня есть кадр данных, который выглядит следующим образом после выбора нужного столбца из импорта:

user_id    datetime
1          1473225887
1          1373225887
1          1673225887
2          1173225887
2          1573225887

Я хотел бы сделать двасвернуть: (1) преобразовать значения даты и времени в обычную запись даты, а не в unix_timestamp, используя функцию datetime.Мне пока не удалось это сделать.

(2) сгруппировать данные по user_id и сохранить только первое datetime (то есть самое раннее число) каждого user_id.

Код, который я написал до сих пор, приведен ниже.Обратите внимание, что я новичок в Python, я еще не управлял классами, поэтому я хотел бы начать без классов.

Я надеюсь, что вы можете помочь мне здесь!Большое спасибо заранее!

def run():
    engagement_dataset = import_engagements()
    engagement_dataset_first_event = first_engagement(engagement_dataset)

def import_engagements():
    df_engagements = pd.read_csv('df_engagements.csv',
                                 sep=';')
    required_columns = ['engagement_unix_timestamp', 'user_id']
    df_engagements = df_engagements[required_columns]
    df_engagements.rename(columns={'engagement_unix_timestamp': 'datetime'}, inplace=True)
    return df_engagements

def first_engagement(engagement_dataset):
    engagement_dataset_grouped = engagement_dataset.groupby(['user_id'])['datetime'].idxmin().reset_index()
        return engagement_dataset_grouped

run()

1 Ответ

0 голосов
/ 25 октября 2018

(1) Вы можете конвертировать дату и время в формате Unix с помощью:

df['datetime_formatted'] = pd.to_datetime(df['datetime'], unit='s')

(2) Затем вы можете группировать по пользователю и агрегировать с помощью agg, находя минимальную дату для этого пользователя:

df.groupby('user_id').agg({'datetime_formatted':'min'})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...