• Какая есть литература полезная и понятная по Data Science на русском?

    Maksim_64
    @Maksim_64
    Data Analyst
    Data Science довольно широкий термин. Насчет Deep Learning посмотри недавно советовал хорошую книгу Ну а насчет Data Science слишком широко берешь, вышеупомянутый Deep Learning относится к DS, статистические тесты, вероятностное моделирование и т.д. также относится к DS, при этом они требуют углубления в совершенно разные разделы математики.
    Ответ написан
    1 комментарий
  • Как применить функцию для всего датафрейма pandas?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Фрейм это не однородная структура данных, то есть у тебя могут быть колонки разных типов, и если ты применяешь функцию для всего фрейма (возможно применение и для подсета фрейма), ты должен быть уверен, что она применима к этим типам данным.

    2. Как следствие ты должен привести свой фрейм к такому типу данных с которым может работать твоя функция метод astype

    3. Есть три направления для применения твоей функции. Основной это метод apply он применяется к каждой строке или каждой колонке параметр axis, то есть когда ты пишешь свою кастомную функцию на вход она будет получать либо numpy массив либо pandas Series. Вообще apply для фрейма имеет довольно много интересных параметров почитай доки этого метода он реально мощный.

    4. Ты также можешь использовать pipe он работает как с Series так и с фреймаим я их часто по цепочке использую очень удобно. То есть пишешь функцию где на вход тебе фрейм приходит, оперируешь так как хочешь им. И потом ориганальный фрейм pipe(func, *args, **kwargs) и тебе приходит копия оригинального фрейма с твоими изменениями описанными в func, это очень хорошая практика.

    5. Ну и последнее самое простенькое это map применяет функцию по элементно к твоему фрейму. То есть свою кастомную функцию ты пишешь, не для numpy массива, не для pandas Series, а для каждого элемента фрейма.
    Ответ написан
    Комментировать
  • Можно ли с ChatGPT создать отчеты и графики на основе GoogleSheets?

    Maksim_64
    @Maksim_64
    Data Analyst
    На сколькой я знаю с gpt, ты не можешь взаимодействовать с google sheets, только вопросы задавать как сделать то или иное. А вот с Gemini ты можешь взаимодействовать, с google workspace и как следствие с google sheets. На сколько это все качественно там не знаю, но начиная от официальной поддержки, ютуб мануалов, да и сам Gemini может подсказать, как с этим делом взаимодействовать.

    Не думаю что google даст api для выполнения скриптов от LLM для своих сервисов. Так что предполагаю что только gemini.
    Ответ написан
    3 комментария
  • Memory Error при определении кодировки как чинить?

    Maksim_64
    @Maksim_64
    Data Analyst
    используй для чтения csv pandas, на случай если они там огромные, то с параметром chunksize=количество строк (по простому чтение по частям) и encoding=то что chardet вернул. Далее поставь колонку с номерами телефона в индекс (для пандас не уникальные индексы это совершенно нормально) и верни csv файл с совпадениями. Код будет что то вроде этого. Предположим это твой csv файл
    Номер Телефона,Имя,Фамилия
    333,Иван,Петров
    333,Василий,Сидоров
    444,Петр,Прямой
    333,Федор,Кривой

    import pandas as pd
    phone_numbers = pd.read_csv('test.csv',index_col='Номер Телефона')
    numbers_of_interset = [777,333]
    index = phone_numbers.index.intersection(numbers_of_interset)
    not_found = pd.Index(numbers_of_interset).difference(phone_numbers.index)
    (
        phone_numbers.loc[index,:]
       .to_csv('result.csv')
    )

    Читаем в фрейм и устанавливаем номер телефона в индекс, numbers_of_interest это те номера которые ты хочешь вернуть в качестве выборки если они есть в файле, делаем intersection с индексом фрейма, также находим те что не нашлись. Записываем файл только с теми что есть. При необходимости выводим те что не нашлись хранятся в not_found.

    Если они очень большие и требуют чтения по частям обратись к докам pandas ну или вот пример использования https://www.geeksforgeeks.org/how-to-load-a-massiv...

    Ну и если тебе не нужна вся выборка а только количество совпадений мне это не очевидно из твоего вопроса, то в контексте моего примера
    print(phone_numbers.loc[index,:].shape[0]) Даст тебе количество.
    Ответ написан
    5 комментариев
  • Какие книги посоветуете по нейросетям?

    Maksim_64
    @Maksim_64
    Data Analyst
    Для новичков ответ очевиден, нет ничего и близко равного Deep Learning with Python, Second Edition . От инженера гугла и создателя Кeras François Chollet. Она и на русском есть, если не владеешь английским. Не много не мало гениальная книга, и доступна для людей без математического бэкграунда.
    Ответ написан
    1 комментарий
  • Что значит сообщение oneDNN custom operations are on?

    Maksim_64
    @Maksim_64
    Data Analyst
    Попробуй любой из ответов вот отсюда.
    Ответ написан
    Комментировать
  • Где найти статистические данные в сфере медиа?

    Maksim_64
    @Maksim_64
    Data Analyst
    Актуальные статистические данные - это ценность. В открытом доступе их не будет.

    Решения на эту тему зависят от бюджета, самое бюджетное решение это спарсить откуда-нибудь, не взять готовые а именно спарсить, и на основе логических факторов, экстраполировать с поправкой на эти факторы, на остальные ресурсы.
    Ответ написан
    Комментировать
  • Почему функция возвращает только один элемент массива?

    Maksim_64
    @Maksim_64
    Data Analyst
    Потому что выражение return прерывает функцию. То есть у тебя происходит только одна итерация цикла, и затем выход из функции. Собери itemPrice[0] в список объявленный вне цикла (result.append(itemPrice[0])) и верни result вне цикла. Имей ввиду то что ты в своей имплементации объявил itemPrice вне цикла и это имеет 0 эффекта, так как при каждой итерации у тебя создается новый объект, например вот здесь itemPrice = i.find(...
    Ответ написан
    1 комментарий
  • Стоит ли уходить в Data Science?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Без сильного программирования делать будет нечего. Есть вакансии математиков там (иногда) программирование требуется но постольку поскольку. Именно в DS требования к программированию большие. Более того в последние годы наметилась тенденция под многими DS вакансиями, бизнес ожидает разработчика в области DS. No Code практики существуют (слабо распространены в России) упомянутый (Jupyter) не имеет к этому никакого отношения в нем надо точно также уметь кодить. Да и в целом No Code довольно редко встречается.

    2.
    Готов потратить год на изучение DS,
    Не реально. Я бы не советовал менять тебе профессию, а если хочешь в DS начни учится, и не на курсах а самостоятельно и начинать надо с программирования.

    3. По зарплатам расти можно довольно быстро да и на первой работе могут платить далеко не 60. Вопрос не в этом, до того как ты сможешь претендовать у тебя путь в несколько лет.
    Ответ написан
    3 комментария
  • Сквозная сортировка индексов DataFrame?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну с формулировкой вопроса ты подкачал, это переформатирование фрейма с элементами сортировки подсета данного фрейма. Вообще когда решаешь такую задачу, то индексы фрейма (колонки и индекс) будут тебе мешать, надо переводить подсет данных в numpy массив и там сортировать.

    Так или иначе, задачка простая, и решается в одну строчку кода, многими способами , например вот так
    df.loc[:,['A','B','C']] = np.sort(df[['A','B','C']].values,axis=1)

    Это изменит твой фрейм как ты хочешь, или определенными вариациями данного кода.
    Ответ написан
    Комментировать
  • Где можно пройти тесты по программированию и информатике?

    Maksim_64
    @Maksim_64
    Data Analyst
    Самые сложные тесты доступные онлайн которые, лично я проходил, да и сейчас иногда прохожу когда время позволяет это hakerrank Плюсом будет на собеседованиях (иностранных) прям тест с платформы могут дать.
    Ответ написан
    Комментировать
  • Как понять что группа событий полная?

    Maksim_64
    @Maksim_64
    Data Analyst
    Тег называется Теория Вероятностей. Что бы разрабатывать теорию, ты должен пойти на множество упрощений. По этому теория вероятностей и начинается с понятий Эксперимент, Выборка, Пространство событий и т.д. В теории не может быть все что угодно она должна развиваться, иметь возможности выявлять взаимоотношения, доказывать математически и т.д (Теория это собственный абстрактный мир).

    Практика это когда ты, идешь на сознательные упрощения-допущения-отклонения от теории и в какой то степени ее применяешь, существует цена сведения проблемы реального мира к математическому виду, а теория вероятности это способ моделирования неопределенности. Иногда отхождения минимальны иногда они большие.

    Например казино имеет отрицательную ожидаемую величину для игрока. Какие отхождения от реальности да практически не каких, благодаря конвергенции ты будешь в минусе в долгую, потому что один и тот же эксперимент повторяется снова и снова.

    Финансовый рынок существует множество стратегий и т.д. Стратегия это сведение проблемы к математическому виду то есть моделирование, допустим оно генерирует положительную ожидаемую величину для определенного участника, но в какой то момент наступает событие не предусмотренное стратегией черный лебедь и практически обнуляет все плюсы стратегии, это как твой пример с монеткой упала ребром.
    Ответ написан
    Комментировать
  • В чём ошибка данных поиска href TypeError: 'NoneType' object is not subscriptable?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ответ в сообщении об ошибке и написан. Объекты типа None не имеют не ключей не индексов ты пытаешься обратится по ключу ['href'].
    вот это item.find(class_="link") не None по скольку он не ругается на метод find. А после вот этого .find('a') у тебя объект типа None.
    Ответ написан
  • Как оценить вероятность того, что среднее выборочное одного бета распределения больше среднего выборочного другого бета распределения?

    Maksim_64
    @Maksim_64
    Data Analyst
    Стандартная стратегия это получить распределение разностей, затем получить pdf этого распределения ну и подставлять интересующую разницу.

    https://stats.stackexchange.com/questions/436039/h...

    Здесь в первом ответе выведена точная формула pdf разностей бета распределений.
    Ответ написан
    Комментировать
  • Как найти первую стажировку или работу джуна по python?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Не нужно искать стажировку.
    С учетом что у тебя нет коммерческого опыта (шансы работа) / (шансы стажировка) > 1

    2. При поиске работы не нужно откликаться только на вакансии без опыта, откликайся на все ну и что, что у тебя будет автоматических отказов > 99 процентов, есть еще 1. Некоторые вакансии предполагают выполнение тестовых заданий. В некоторых вакансиях написано требуется опыт при этом зарплата сильно ниже рынка. Твоя первая задача это научится хоть какой-то фидбек получать от потенциального работодателя, созвон хотя бы. Стремись попасть на собеседование даже если у тебя нет шансов его пройти.

    3. Говори что официально не работал, но есть не официальный опыт. Сделай порфолио, что бы было что показать в резюме.

    С таким подходом на каждые 200 откликов твоя ожидаемая величина 2-5 потенциальных фидбека, 0-2 собеседования. Дальше, как справишься. Подводя итог, когда некое событие маловероятно то лучший рецепт это активность. Не нужно самому добровольно себя обесценивать. Скорее всего рынок заплатит тебе мало, но это совершенно не одно и тоже, когда ты сам, себя обесцениваешь подходом дайте шанс, я почти ничего не умею, но научусь и т.д. и т.п.
    Ответ написан
    1 комментарий
  • Возможно ли влиять на продуктивность программиста извне?

    Maksim_64
    @Maksim_64
    Data Analyst
    В целом работодатель должен стремится к долгосрочному сотрудничеству. Что бы его сотрудники однажды реализовали свой потенциал. А поиск супер продуктивных гениев, так про между прочим и то для тех кто может это себе позволить.

    На испытательном сроке странно быть недовольным продуктивностью. Нужно смотреть что умеет что не умеет, какая степень контроля требуется над работником. Одна из целей (работодателя) оценить потенциал. Но не как не производительность.

    Испытательный срок он обоюден. Когда у сотрудника есть мысли на заднем плане (а подходит ли мне вакансия, а оставят ли меня и т.д.) это серьезно снижает его продуктивность, как и другие факторы. На испытательном сроке оценивают потенциал, а не производительность.
    Ответ написан
    1 комментарий
  • Как выравнивать столбцы Pandas для красивого вывода в терминале?

    Maksim_64
    @Maksim_64
    Data Analyst
    С учетом того что в родном IDE все не ровно, то на ум приходит только следующая причина. Тип данных твоих колонок 'object' или 'string' и строки содержат пробелы в начале и в конце. В общим нужно применить метод strip (удалить лишние пробелы в начале и в конце строки).
    result = df.assign(**{
        'Системы:':lambda x:x['Системы:'].str.strip(),
        'Текущий %:':lambda x:x['Текущий %:'].str.strip(),
        'Плановый %:':lambda x:x['Плановый %:'].str.strip()
    })
    print(result)

    Если речь именно об этих данных что ты приложил в примере, то в моем python IDE они выглядят вот так
    65e0b054c7d7a530628786.png
    Как видишь вполне себе ровно, это без моего кода удаления пробелов. Так как в предоставленных тобой данных нет лишних пробелов.
    Ответ написан
  • Как сгруппировать строки в DF по условию?

    Maksim_64
    @Maksim_64
    Data Analyst
    Профессиональных способов несколько например использовать resample метод. Это специализированный groupby для временной последовательности, второй это использовать groupby вместе с pd.Grouper. Приведу простенький пример.
    index = pd.date_range('1/1/2000', periods=9, freq='min')
    df= pd.DataFrame(data=np.random.randint(1,10,(9,2)), index=index, columns=['A','B'])
    df.resample('3min').agg({'A':'sum','B':'mean'})
    Я создал фрейм с индексом временная последовательность (1 мин). сгруппировал по 3минуты и применил к каждой из колонок разные аггрегирующие функции.

    Выбирать можно по любым временным интервалам. Почитай доки.
    Ответ написан
    1 комментарий