• Как объединить две таблицы в pandas?

    Maksim_64
    @Maksim_64
    Data Analyst
    pd.merge(левая таблица, правая таблица, left_on='CELL',right_on='GeranCellId ', how=method)

    где метод left, right,inner, outer, cross. Это типы джойнов.
    merge

    Ну и выбери нужные колонки, например. для левой таблицы тебе не нужны BSC и LAC, если ты по правой будешь джойнить, тебе эти колонки оттуда нужны. Выбирать нужные колонки и ставить их в желаемом порядке делают c помощью loc. фрейм.loc[:,[колонка1, колнка2, итд]]
    Ответ написан
    Комментировать
  • Почему моё решение неправильное?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну так первый ответ 1/2, и второй 1/5.
    Мы имеем дело с условной вероятностью. Когда мы имеем дело с условной вероятностью мы спрашиваем. Каким образом произошедшее событие изменяет пространство выборки?

    P(A|B) = какова вероятность, что выпало четное число с учетом того что выпавшее число кратное 5. Есть всего два кратных 5 числа (это 10 и 5) такой у нас стало пространство выборки, из это пространства мы спрашиваем какова вероятность что число четное у нас один удовлетворяющий условию ответ 1/2

    P(B|A) = какова вероятность, что выпало число кратное 5 с учетом того что выпавшее число четное. Есть 5 четных чисел (это 2,4,6,8,10) такой у нас стало пространство выборки, из это пространства мы спрашиваем какова вероятность что число кратное 5 у нас один удовлетворяющий условию ответ 1/5
    Ответ написан
    Комментировать
  • Как преобразовать вложенные словари в объекты с типами для API-обёртки?

    Maksim_64
    @Maksim_64
    Data Analyst
    Задачка не маленькая, и попыток ее решить ты не предоставил. Есть вот так вот - хочу вот так вот, и все.
    Могу посоветовать книга Fluent Python глава 22 Dynamic Attributes and Properties.
    В ней как раз на примере вложенного json объяснено предельно подробно, как решать подобные задачи.
    Ответ написан
    Комментировать
  • Как очистить оперативную память с python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Python не позволяет работать с памятью напрямую. Очистка происходит сборщиком мусора, когда количество ссылок на объект равно нулю. Например когда ты используешь del ты удаляешь ссылку на объект, то есть счетчик ссылок - 1. и когда он равен нулю, то произойдет полное удаление объекта из памяти.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Не помешало бы, пример несколько строк из фрейма которые не сортируются.
    2. Обратно возвращать в строку не обязательно.
    3. Методы чтения имеют параметр parse_dates для того что бы строковое представление даты перводить в тип данных datetime64
    вот небольшой примерчик
    (
        pd.DataFrame({
            'string_dates':['17.08.2024','15.08.2024','20.09.2024'],
            'values':[10,100,1000]
        })
        .assign(
            dates=lambda x: pd.to_datetime(x['string_dates'],format='%d.%m.%Y')
        )
        .sort_values(by='dates')
    )
    как видишь все сортируется, обрати внимания на типы данных. Колонку которая используется для сортировки можно дропнуть, ну или создать ее что называется "на лету".
    Ответ написан
    Комментировать
  • Нужно ли ехать в Москву подписывать документы, если устраиваешься на удаленку из региона?

    Maksim_64
    @Maksim_64
    Data Analyst
    Электронной подписью подписываешь трудовой договор, да и все, я так работаю.
    Ответ написан
  • Можно ли сравнить два изображения между собой на похожесть?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Определить для себя что ты понимаешь под похожестью. В комментарии верное подмечено.
    2. Закодировать изображения в тензорное представления.
    3. Сравнивать дистанции между двумя тензорами евклидова дистанция, cosine similarity и т.д.

    Сейчас даже базы есть, я такую использовал в проекте недавно (chroma db), которые оптимизируют поиск ближайшей дистанции по изображениям / текстам. То есть пишешь запрос входной эмбединг а он тебе выдает запись с наименьшей дистанцией, к данному эмбедингу.
    Ответ написан
    Комментировать
  • Как можно реализовать решение с обратной индексацией?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну поработай с индексом да и все.
    Самое примитивное
    def __getitem__(self, index):
            try:
                return self.data[-(index+1)]
            except IndexError:
                return None
    Ответ написан
    Комментировать
  • В какую структуру лучше всего сохранить небольшие графы/деревья (2-100 вершин)?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну если не большие, что мешает граф хранить в графе. Обойтись без преобразования, а использовать сереализацию. Модуль pickle, или методы сереализации предусмотренные библиотеками, которыми ты пользуешься для работы с графами. Например самая популярная библиотека для работы с графами (networkx) естественно имеет методы сереализации write_graphml. Поддерживает разные форматы и т.д.
    Ответ написан
    Комментировать
  • Если любой из элементов массива слов имеется в строке - выдать true, как?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Проходишься по своему массиву и спрашиваешь присутствует ли твое слово в тексте который ввел пользователь.
    2. В результате получаешь массив булевых значений True False
    3. Если в массиве есть True, значит в тексте введенным пользователем есть слово из твоего массива слов.

    Детали реализации: any и list comprehension
    Ответ написан
    Комментировать
  • Почему Python не видит библиотеку?

    Maksim_64
    @Maksim_64
    Data Analyst
    Оставить на денек, другой SpeechRecognition в покое, и познакомится с концепцией виртуального окружения.
    Ответ написан
    4 комментария
  • Почему объект копируется, а не создаётся заново?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Понять разницу между объектом класса, и объектом экземпляра класса.
    2. Понять разницу между атрибутами класса и атрибутами экземпляра класса.
    Ответ написан
    Комментировать
  • Как хранить списки в бд?

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

    Использовать не реляционные базы данных, они больше подходят если данные имеют вложенную структуру и простым переформатированием не обойтись.

    Если тебя все устраивает и тебе удобно работать с фреймом, но хочется иметь такое представление информации только не в памяти, а на диске. Можешь использовать например сериализацию, метод для фреймаto_pickle, и соответственно read_pickle для чтения.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Проблема в типах данных cofe и flor - строки, а должны быть int.
    cofe = int(input('Сколько вы хотите кофе?: '))
    flor = int(input('Введите на каком вы этаже:'))

    Исключения не выходит из-за логического and if cofe in [1, 2, 3] and flor >= 100: он оценивает первое условие как False и не переходит ко второму.
    Ответ написан
    1 комментарий
  • Стоит ли идти на практику в компанию?

    Maksim_64
    @Maksim_64
    Data Analyst
    Совместить плюсы первого и второго варианта. Идти на стажировку и развиваться самому. Улучшением текущих и получением новых навыков, занимаются и уже работающие опытные специалисты, а у тебя все еще впереди. Зовут в какую то компанию иди, уйти можно всегда, плохо когда никуда не зовут.
    Ответ написан
    Комментировать
  • Как хранить данные таблицы содержащие описание множества товаров без ошибки "ValueError: All arrays must be of the same length"?

    Maksim_64
    @Maksim_64
    Data Analyst
    Все очень просто, когда ты пытаешься создать фрейм, у тебя списки разной длинны получаются. Вот код который выдаст точно такую же ошибку.
    (
        pd.DataFrame({
            'A':[1,2,3],
            'B':[100,200]
        })
    )

    А вот исправленная версия кода
    (
        pd.DataFrame({
            'A':pd.Series([1,2,3]),
            'B':pd.Series([100,200])
        })
    )
    Не достающий элемент он заполнит пропущенным значением.
    Ответ написан
    1 комментарий
  • Как настроить del в python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну класс чуть переделать желательно бы. У тебя аргументы хранятся как кортеж (не мутабельный объект). Сменить для начала на список (мутабельный тип), и затем определить подходящий дандер метод. Например как то так.
    class MyClass():
        def __init__(self, *args):
            self.args = list(args)  
    
        def __delitem__(self, key):
            if key in self.args:
                self.args.remove(key)
    
    example = MyClass('ab', '12', 100, None)
    print(example.args)
    del example['12']
    print(example.args)

    Ну и там покрыть исключением если ключа нет и т.д.
    Ответ написан
    1 комментарий
  • Как узнать какое будет следующее число?

    Maksim_64
    @Maksim_64
    Data Analyst
    "Справедливая" фифти/фифти монетка подброшена 4 раза, так получилось, что все 4 раза выпал орел. Что же будет, при 5 броске? все также фифти/фифти. То что было "до" никак не влияет на вероятность "следующего" события.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Решений миллион.
    1. написать функцию для работы с питон списком, которая будет будет возвращать, True,False.
    2. Применить один из многочисленных методов фильтрации.

    Например
    df = pd.DataFrame({
        'userID':[25,188,79],   
        'goalsID':[[1,2,4,5],[3,6],[1,9]]
    })
    (
        df.loc[lambda x:x['goalsID'].apply(lambda x: 3 in x)]
    )
    Ответ написан