Импортируйте файл ".dat" в файл данных pandas - PullRequest
1 голос
/ 05 ноября 2019

У меня есть файл .dat, который выглядит следующим образом:

enter image description here

Вы можете скачать его здесь: https://filebin.net/hnhsv8sc3zvaoi8k

Я бы хотел прочитать этот файл во фрейме данных pandas. Я нашел этот вопрос и попробовал решение:

with open('Output2.dat','r') as f:
    df = pd.DataFrame(l.rstrip().split() for l in f)

Результат выглядит так:

enter image description here

  • смещена строка «Баланс». Как это изменить?
  • Как я могу убедиться, что первая строка добавлена ​​как заголовки столбцов панд?

Большое спасибо.

РЕДАКТИРОВАТЬ: Вот так должна выглядеть финальная таблица:

enter image description here

1 Ответ

1 голос
/ 05 ноября 2019

«Пустые элементы» составляют 0xa0 байт;неразрывные пробелы в Latin-1, но пробелы тем не менее, поэтому они str.split.

рассматриваются как пробелы. Вот хакерский обходной путь, который работает:

with open("Output2.dat", "rb") as f:  # binary mode
    df = pd.DataFrame(
        [e.decode("latin-1") if e != b'\xa0' else None for e in l.strip().split()]
        for l in f
    )

Вот яоткрытие файла в двоичном режиме, потому что bytes.split игнорирует это специальное пространство. Когда я его обнаруживаю, я также заменяю его на None, чтобы в пустых ячейках не было странных символов.

Я предполагаю кодировку latin-1, потому что 0xa0 сам по себе является недопустимым UTF-8, но вам может потребоваться заменить его на windows-1252 или другой кодировкой, в зависимости от того, откуда поступают эти данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...