Панды не читают в файле правильно

У меня есть файл данных, приведенный здесь:: https://www.dropbox.com/sh/8lsvigjjpjhdlap/AAD3VpFdBifGMxrq5C-6yhpPa?dl=0

и следующий код::

import pandas as pd       
df = pd.read_table('Best_2018_Table1.txt', sep=r"\s*")

но что-то ломается и панды не читают эту заведомо плохо отформатированную таблицу:

df.columns
df['PS1gmag']

Каков наилучший способ чтения в этом файле типа пробелов для столбцов?

2 ответа

Ваше регулярное выражение ищет 0 или более пробельных символов. Попробуйте \s+, чтобы обеспечить минимум 1 пробел.

Ваш файл имеет фиксированные поля ширины (кроме заголовков) и должен быть прочитан как таковой.

Использование пробела в качестве разделителя не будет работать, потому что некоторые поля пусты и помещают данные в неправильный столбец, например:

2MASS_J00492677-0635467     M8.5         8.5 null                   M8.5
WISEPC_J004928.48+044100.1  null             L9                19.  L9
WISE_J004945.61+215120.0    null             T8.5              28.5 T8.5
SIPS_J0050-1538             L1:         11.  L0.5              10.5 L1:

Станет:

2MASS_J00492677-0635467     M8.5        8.5   null  M8.5
WISEPC_J004928.48+044100.1  null        L9    19.   L9
WISE_J004945.61+215120.0    null        T8.5  28.5  T8.5
SIPS_J0050-1538             L1:         11.   L0.5  10.5  L1:
Другие вопросы по тегам