Size: a a a

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

2019 June 13

ЕТ

Евгений Томилов... in Python для анализа данных
А я не хочу программировать, хочу строить боксплоты и подбирать по сетке гиперпараметры.
источник

b

bacchus in Python для анализа данных
Евгений Томилов
Ну, я сейчас посмотрел PyCharm и как-то влом пока отдавать 200$ в год. Хотя выглядит очень классно и удобно.

Jupyter сейчас попробую.
Нарисуй студенческий и будет бесплатно
источник

b

bacchus in Python для анализа данных
Работает практически с любой прогой)
источник

ЕТ

Евгений Томилов... in Python для анализа данных
bacchus
Нарисуй студенческий и будет бесплатно
Я в понедельник магистратуру закончил! 😭
источник

O

Oleh in Python для анализа данных
Алексей Макаров
index_of_max_date = temp.groupby('ID', sort=False)['Date'].transform(max) == temp['Date'] # Создаем маску, где True будет соответствовать строкам с максимальным Date
max_date_rows = temp[index_of_max_date][['ID','TimeBetween']].rename(columns={'TimeBetween':'MaxDateTimeBetween'}) # Фильтруем фрейм по маске: оставляем только строки с максимальным Date
exclude_max_date_rows = temp[~index_of_max_values] # Фильтруем фрейм по маске: оставляем все строки, КРОМЕ строки с максимальным Date
mean_df = exclude_max_date_rows.groupby('ID',as_index=False)['TimeBetween'].mean().rename(columns={'TimeBetween':'MeanTimeBetween'}) # Считаем среднее по TimeBetween в exclude_max_date_rows
merged_df = mean_df.merge(max_date_rows,on='ID',how='left') # Объединяем mean_df с max_date_rows по ID
merged_df['Ratio'] = merged_df['MaxDateTimeBetween']/merged_df['MeanTimeBetween'] # Считаем отношение
Алексей, подскажите, пожалуйста, как правильно сделать тот же расчет только для стандартного отклонения вместо среднего. Почему-то после замены mean на std возвращается результат с NaN
источник

b

bacchus in Python для анализа данных
Даже рисовать не нужно)
источник

АМ

Алексей Макаров... in Python для анализа данных
Oleh
Алексей, подскажите, пожалуйста, как правильно сделать тот же расчет только для стандартного отклонения вместо среднего. Почему-то после замены mean на std возвращается результат с NaN
Странно, должно работать, а скиньте свой код
источник

OB

Oleg Basmanov in Python для анализа данных
читаю тут статью https://habr.com/ru/company/newprolab/blog/340806/
Вторая беда, лично по моему опыту – очень плохое программирование. Здесь дело даже не в том, что человек не может реализовать какой-то более-менее сложный алгоритм, а это неумение программировать в принципе. Если человек, чтобы прочитать файл в Python, импортирует Pandas, то это странно. Однако мы начинаем с этим бороться, иначе мы вообще никого не сможем нанять.
и вот интересно стало что не так с импортом пандаса?
источник

АМ

Алексей Макаров... in Python для анализа данных
Я так понимаю, что имеется в виду, что плохо когда человек не понимает как это сделать на более низком уровне силами чистого Python. Особенно если речь идёт про data scientist в крупной компании, который гипотетически должен быть не просто человеком, который готовит модель, но и в меру своих сил сделать её production-ready
источник

OB

Oleg Basmanov in Python для анализа данных
мне кажется что его больше удивляет что впринципе использует пандас для этой задачи. Сделать на более низком уровне силами чистого python, человек может и не знает в конкретный момент времени но думаю все как обычно решаемо парой страниц на стековерфлоу
источник

OB

Oleg Basmanov in Python для анализа данных
а почему нужно загружать чистым python  а не pandas?
источник

АМ

Алексей Макаров... in Python для анализа данных
Я на самом деле, всё чаще подобные реплики вижу и слышу, что со всей этой популяризацией Python на рынке оказалось куча специалистов, которые умеют делать import xgboost и хотят получать дохера из-за этих навыков. Мне кажется, время всё расставит по местам в плане соответствия скиллов и зарплат, особенно когда работодатели более четко начнут понимать зачем им аналитик или data scientist. Но моя позиция такова, что чем больше людей будет уметь делать import pandas as pd - тем лучше) Но я тут супер не объективен, потому что для меня pandas молоток, а все данные и пайплайны вокруг - гвозди
источник

M

M 🌗🌘🌑🌒🌓... in Python для анализа данных
Oleg Basmanov
читаю тут статью https://habr.com/ru/company/newprolab/blog/340806/
Вторая беда, лично по моему опыту – очень плохое программирование. Здесь дело даже не в том, что человек не может реализовать какой-то более-менее сложный алгоритм, а это неумение программировать в принципе. Если человек, чтобы прочитать файл в Python, импортирует Pandas, то это странно. Однако мы начинаем с этим бороться, иначе мы вообще никого не сможем нанять.
и вот интересно стало что не так с импортом пандаса?
всё, это большой импорт, которого часто можно избежать если иметь минимаоьное знакомство со стандартной библиотекой
источник

АМ

Алексей Макаров... in Python для анализа данных
Oleg Basmanov
а почему нужно загружать чистым python  а не pandas?
Если pandas для обработки в дальнейшем особо не нужен, то можно и без него обойтись. Он достаточно тяжелый
источник

OB

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

b

bacchus in Python для анализа данных
Растущий рынок прощает ошибки )
источник

AR

Anton Rozhkov in Python для анализа данных
Oleg Basmanov
мне кажется что его больше удивляет что впринципе использует пандас для этой задачи. Сделать на более низком уровне силами чистого python, человек может и не знает в конкретный момент времени но думаю все как обычно решаемо парой страниц на стековерфлоу
Это не какой-то рокетсайенс загрузить файл в питоне. Самое главное не перезаписать его в 0.
источник

O

Oleh in Python для анализа данных
Алексей Макаров
Странно, должно работать, а скиньте свой код
temp['TimeBetween'] = temp.sort_values(['ID','Дата']).groupby('ID')['Дата'].diff()
temp['TimeBetween'] = temp['TimeBetween'].dt.days
index_of_max_date = temp.groupby('ID', sort=False)['Дата'].transform(max) == temp['Дата'] # Создаем маску, где True будет соответствовать строкам с максимальным Date
max_date_rows = temp[index_of_max_date][['ID','TimeBetween']].rename(columns={'TimeBetween':'MaxDateTimeBetween'}) # Фильтруем фрейм по маске: оставляем только строки с максимальным Date
exclude_max_date_rows = temp[~index_of_max_date] # Фильтруем фрейм по маске: оставляем все строки, КРОМЕ строки с максимальным Date
mean_df = exclude_max_date_rows.groupby('ID',as_index=False)['TimeBetween'].std().rename(columns={'TimeBetween':'MeanTimeBetween'}) # Считаем среднее по TimeBetween в exclude_max_date_rows
merged_df1 = mean_df.merge(max_date_rows,on='ID',how='left') # Объединяем mean_df с max_date_rows по ID
merged_df1['ОтношПослМеждЗаявкНаСредМеждПред'] = merged_df1['MaxDateTimeBetween']/merged_df1['MeanTimeBetween'] # Считаем отношение
источник

АМ

Алексей Макаров... in Python для анализа данных
Oleh
temp['TimeBetween'] = temp.sort_values(['ID','Дата']).groupby('ID')['Дата'].diff()
temp['TimeBetween'] = temp['TimeBetween'].dt.days
index_of_max_date = temp.groupby('ID', sort=False)['Дата'].transform(max) == temp['Дата'] # Создаем маску, где True будет соответствовать строкам с максимальным Date
max_date_rows = temp[index_of_max_date][['ID','TimeBetween']].rename(columns={'TimeBetween':'MaxDateTimeBetween'}) # Фильтруем фрейм по маске: оставляем только строки с максимальным Date
exclude_max_date_rows = temp[~index_of_max_date] # Фильтруем фрейм по маске: оставляем все строки, КРОМЕ строки с максимальным Date
mean_df = exclude_max_date_rows.groupby('ID',as_index=False)['TimeBetween'].std().rename(columns={'TimeBetween':'MeanTimeBetween'}) # Считаем среднее по TimeBetween в exclude_max_date_rows
merged_df1 = mean_df.merge(max_date_rows,on='ID',how='left') # Объединяем mean_df с max_date_rows по ID
merged_df1['ОтношПослМеждЗаявкНаСредМеждПред'] = merged_df1['MaxDateTimeBetween']/merged_df1['MeanTimeBetween'] # Считаем отношение
То есть в mean_df получается NaN?
источник

ЕТ

Евгений Томилов... in Python для анализа данных
Может, там пропущенные значения. =)
источник