Регулярное выражение для na_values ​​с использованием pandas.read_csvPython

Программы на Python
Ответить
Anonymous
 Регулярное выражение для na_values ​​с использованием pandas.read_csv

Сообщение Anonymous »

Я хочу прочитать такой файл, используя pandas.read_csv

Код: Выделить всё

1891, 91920,  7,       628,249, 59,51.0, 0.026, 0.028,   NaN,   NaN,   NaN,   NaN,   NaN,  0.156, 0.071,    NaN,   NaN,    NaN,   NaN,    NaN,   NaN,    NaN,   NaN,   21,500,   21,43.8, 0.005, 0.619,  NaN,45.6, 0.048, 0.053,   NaN,   NaN,   NaN,   NaN,   NaN, -0.180, 0.088,   20, 0.012, 1.107,  NaN, NaN,   NaN,   NaN,   NaN,   NaN,   NaN,   NaN,   NaN,    NaN,   NaN,  NaN,   NaN,   NaN,  NaN,     NaN,     NaN,     NaN
1891, 91920, 16,       628,135, 22,41.2, 0.093, 0.087,   NaN,   NaN,   NaN,   NaN,   NaN,  0.416, 0.212,    NaN,   NaN,    NaN,   NaN,    NaN,   NaN,    NaN,   NaN,   21,500,   20,23.3, 0.021, 2.023,  NaN, NaN,   NaN,   NaN,   NaN,   NaN,   NaN,   NaN,   NaN,    NaN,   NaN,  NaN,   NaN,   NaN,  NaN, NaN,   NaN,   NaN,   NaN,   NaN,   NaN,   NaN,   NaN,    NaN,   NaN,  NaN,   NaN,   NaN,  NaN,     NaN,     NaN,     NaN
1891, 91920,  3,       628, 28, 39,47.0, 0.041, 0.044,   NaN,   NaN,   NaN,   NaN,   NaN, -0.006, 0.064,    NaN,   NaN,    NaN,   NaN,    NaN,   NaN,    NaN,   NaN,   21,500,   21,37.5, 0.009, 0.964,  NaN,45.3, 0.054, 0.055,   NaN,   NaN,   NaN,   NaN,   NaN, -0.838, 0.228,   20, 0.013, 1.193,  NaN,51.8, 0.025, 0.026,   NaN,   NaN,   NaN,   NaN,   NaN, -0.021, 0.054,   21, 0.005, 0.540,  NaN,     NaN,     NaN,     NaN
1891, 91920,  6,       628,276, 20,40.0, 0.118, 0.101,   NaN,   NaN,   NaN,   NaN,   NaN, -0.767, 0.558,    NaN,   NaN,    NaN,   NaN,    NaN,   NaN,    NaN,   NaN,   21,500,   20,26.7, 0.032, 2.982,  NaN,41.0, 0.088, 0.089,   NaN,   NaN,   NaN,   NaN,   NaN, -0.141, 0.233,   20, 0.024, 2.074,  NaN,46.2, 0.053, 0.049,   NaN,   NaN,   NaN,   NaN,   NaN,  0.080, 0.034,   21, 0.012, 1.187,  NaN,     NaN,     NaN,     NaN
У меня проблема с чтением, потому что значения NaN. Если файл был CSV-файлом (разделенный запятой), у меня нет проблем, но в нем есть пробелы. Когда я прочитал это, используя:

Код: Выделить всё

df = pd.read_csv(file,index_col=None, header=None)
Очевидно, что столбцы с NaN читаются как строки из-за пробелов. Моя проблема была бы простой, если бы пространства имели одинаковую размерность. Я мог бы использовать:

Код: Выделить всё

df = pd.read_csv(file,index_col=None, header=None, na_values = "   NaN")
и проблема решена, но есть столбцы с разными пробелами. У некоторых из них перед NaN есть 4 пробела, у других 6 и так далее.

Итак, мой вопрос: существует ли регулярное выражение для указания значений na_values что-то вроде na_values ​​= "\s+ NaN"?

Подробнее здесь: https://stackoverflow.com/questions/404 ... s-read-csv
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»