Справочная информация:
Я читаю большой CSV-файл, содержащий строки размером более 40 КБ, поэтому потребовалось так много изменений в данных, которые я сделал без каких-либо проблем, потому что я использую pandas за последние несколько месяцев.
Проблема: в CSV-файле содержится так много пустых строк, которые содержат только один тип скрытого символа с именем EOL
Проблемы: строки, которые Panda игнорирует, содержат скрытые символ EOL:
Я попытался поделиться примерами данных здесь, но скрытый символ удаляется, поэтому я делюсь снимком, где он показывает скрытый символ.
Этот веб-сайт, который я использовал для получения вышеуказанной информации dostring.com/show-hidden-characters
Я рассмотрел довольно популярные вопросы на этом форуме, но мне ничего не помогло. Предложите другие решения
Вот как я узнал, что некоторые пустые строки не видны в DF:
проверка количества пустых значений
df.example_column.isnull().sum()
В результате получил некоторый счет
преобразование типа данных столбца:
df.example_column = df.example_column.astype('str')
Когда я использовал выше команда преобразования помечает пустые столбцы как 'nan'
Опять проверенный счетчик isnull().sum()
, который теперь равен нулю
Наконец, я вынул данные в формате CSV, но увидел несколько пустых строк, теперь это странно
Затем я использую следующую команду для просмотра строк во время выполнения
df[165:175]
Меня снова удивило, строки 168 и 169 пусты, когда вы открываете их в MS Office. Здесь, в консоли, я вижу только одну пустую строку, которая равна 169, и Panda помечает ее как 'nan', в то же время номер строки 168 заменяется данными 167.
Этот сценарий существует в целом лист (CSV) и panda просто игнорируют одну пустую строку во время выполнения, но в MS Office вы можете увидеть эти строки. Я попытался поделиться примером данных здесь, но скрытый символ удаляется, поэтому я делюсь снимком, где он показывает скрытый символ.
К вашему сведению,
Вот настройки, которые я использую при чтении файла CSV:
sep=",", skipinitialspace=False, skip_blank_lines=False, encoding='utf-8'