• 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 комментариев