Size: a a a

Python для анализа данных

2019 August 21

P

Peter in Python для анализа данных
источник

OO

Oleg Omelchenko in Python для анализа данных
Peter
ребят, не могу придумать как посчитать количество сессий с поиском, есть отдельно события по сессиям и поискам, таймштампы для поиска и таймпштамп для начала и конца сесии. Может быть кто-то сталкивался с такой задачей?
а не проще в бигквери запрос составить? это ж выгрузка из файрбейс, если верно понял?
источник

P

Peter in Python для анализа данных
Oleg Omelchenko
а не проще в бигквери запрос составить? это ж выгрузка из файрбейс, если верно понял?
да, но представлял что на пандасе будет проще, как написать это на sql -  вопрос)
источник

DS

Dmitriy Shashkin in Python для анализа данных
наверное что-то вроде select count(distinct session_id) from sessions s inner join view_search_results v on s.presuodo_user_id=v.presuodo_user_id and v.search_timestamp between s.session_timestamp_start and s.session_timestamp_end я правда sql диалекта bigquery не знаю
источник

DS

Dmitriy Shashkin in Python для анализа данных
кмк то что можно сделать на sql лучше делать на sql тк декларативный язык, как правило, ведёт к меньшему числу ошибок
источник

OO

Oleg Omelchenko in Python для анализа данных
плюсую, к тому же если делать запросом — мощность расходуется серверами бигквери, а не тем на котором запущен питон
источник

P

Peter in Python для анализа данных
Dmitriy Shashkin
наверное что-то вроде select count(distinct session_id) from sessions s inner join view_search_results v on s.presuodo_user_id=v.presuodo_user_id and v.search_timestamp between s.session_timestamp_start and s.session_timestamp_end я правда sql диалекта bigquery не знаю
как оказалось там не все так просто, нет даты когда сессия заканчивается, но она точно заканчивается, когда начинается другая сессия. Поэтому такой способ не сработает
источник

OO

Oleg Omelchenko in Python для анализа данных
Peter
как оказалось там не все так просто, нет даты когда сессия заканчивается, но она точно заканчивается, когда начинается другая сессия. Поэтому такой способ не сработает
считать в файрбейсе что-то по сессиям — гиблое дело
источник

OO

Oleg Omelchenko in Python для анализа данных
он изначально user-based, лучше по юзерам и считать
источник

OO

Oleg Omelchenko in Python для анализа данных
вернее user_pseudo_id, аналог clientId из GA
источник

OO

Oleg Omelchenko in Python для анализа данных
как вариант — присобачить к user_pseudo_id дату и считать клиенто-дни, чтобы избавиться от зависимости коэффициента конверсии от окна подсчета
источник

DS

Dmitriy Shashkin in Python для анализа данных
Peter
как оказалось там не все так просто, нет даты когда сессия заканчивается, но она точно заканчивается, когда начинается другая сессия. Поэтому такой способ не сработает
тогда или дважды джойнить с таблицей сессий (есть сессия после текущей, но нет сессии между ними), чтобы получить дату следующей сессии или использовать для этого оконную функцию типо вот такой https://cloud.google.com/dataprep/docs/html/PREV-Function_57344750 ,  а потом опять же джойнить с просмотрами. В pandas тоже можно решить, отсортировать по пользователю и дате, затем использоовать метод shift тип как тут показано https://stackoverflow.com/questions/22081878/get-previous-rows-value-and-calculate-new-column-pandas-python чтобы узнать дату следующей сессии того же пользователя. Но вариант с оконной функцией кмк лучше
источник

AM

Alexey Martynov in Python для анализа данных
Добрый вечер! Подскажите пожалуйста как эффективнее всего из из обычной даты в timespant сконвертировать столбец, думал реализовать через apple() но сдается мне что это может занять очень много времени
источник

АМ

Алексей Макаров... in Python для анализа данных
Alexey Martynov
Добрый вечер! Подскажите пожалуйста как эффективнее всего из из обычной даты в timespant сконвертировать столбец, думал реализовать через apple() но сдается мне что это может занять очень много времени
pd.Timestamp(df['col'], unit ='s')
источник

АМ

Алексей Макаров... in Python для анализа данных
Ой
источник

ВЛ

Владислав Литвинюк... in Python для анализа данных
иногда,
pd.Timestamp(df['col'], unit ='ms')
источник

АМ

Алексей Макаров... in Python для анализа данных
Не прочитал, вам же наоборот надо
источник

АМ

Алексей Макаров... in Python для анализа данных
Alexey Martynov
Добрый вечер! Подскажите пожалуйста как эффективнее всего из из обычной даты в timespant сконвертировать столбец, думал реализовать через apple() но сдается мне что это может занять очень много времени
df['ts'] = df['datetime'] .values.astype(np.int64) // 10 ** 9
источник

AM

Alexey Martynov in Python для анализа данных
Спасибо ребята
источник

АМ

Алексей Макаров... in Python для анализа данных
Я тут наткнулся на либу под названием petl. Судя по вот этому ноутбуку она мало отличается от pandas: https://nbviewer.jupyter.org/github/petl-developers/petl/blob/master/notes/case_study_1.ipynb
источник