Python для чтения текстового файла не работает с numpy / pandas - PullRequest
1 голос
/ 04 октября 2019

Я хочу прочитать текстовый файл в Python, но я не могу этого сделать. Если я использую np.loadtxt('file'), я получаю ошибку URL (не знаю почему ...). Если я использую панды, кажется, что неправильно анализировать столбцы. Это выглядит так:

   0.0000000e+00   0.0000000e+00   0.0000000e+00   0.0000000e+00   0.0000000e+00   0.0000000e+00
  -3.6344707e-03  -2.6598413e-02   8.4534688e-02  -8.6057356e-04   3.4833275e-04  -1.7481226e-05
  -7.6545137e-03  -6.9117133e-02   1.0195991e-02  -1.1818548e-03   6.2261736e-04  -1.1414899e-04

Я уверен, что часть проблемы заключается в том, что разделитель состоит из 3 пробелов, но я не могу решить эту проблему.

Панды также будутприемлемая альтернатива ...

Ответы [ 2 ]

3 голосов
/ 04 октября 2019

Попробуйте это ...

import pandas as pd

df = pd.read_csv('file.txt', delim_whitespace=True, header=None)

Где delim_whitespace=True - ваш разделитель для пробела.

В качестве альтернативы вы можете использовать

import pandas as pd

df = pd.read_fwf('filet.txt')

, где read_fwf означает «строки с фиксированной шириной». Опять же, я не проверял, но я считаю, что это должно работать.

2 голосов
/ 04 октября 2019

loadtxt не должно быть проблем с таким файлом. Имитация чтения с помощью copy-n-paste вашего отпечатка:

In [2]: txt = """   0.0000000e+00   0.0000000e+00   0.0000000e+00   0.0000000e+0
   ...: 0   0.0000000e+00   0.0000000e+00 
   ...:   -3.6344707e-03  -2.6598413e-02   8.4534688e-02  -8.6057356e-04   3.483
   ...: 3275e-04  -1.7481226e-05 
   ...:   -7.6545137e-03  -6.9117133e-02   1.0195991e-02  -1.1818548e-03   6.226
   ...: 1736e-04  -1.1414899e-04"""                                             
In [3]: np.loadtxt(txt.splitlines())                                            
Out[3]: 
array([[ 0.0000000e+00,  0.0000000e+00,  0.0000000e+00,  0.0000000e+00,
         0.0000000e+00,  0.0000000e+00],
       [-3.6344707e-03, -2.6598413e-02,  8.4534688e-02, -8.6057356e-04,
         3.4833275e-04, -1.7481226e-05],
       [-7.6545137e-03, -6.9117133e-02,  1.0195991e-02, -1.1818548e-03,
         6.2261736e-04, -1.1414899e-04]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...