Чтение данных из текстового файла с отсутствующими значениями

Я хочу прочитать данные из файла с множеством отсутствующих значений, как в этом примере:

1,2,3,4,5 6,,,7,8 ,,9,10,11 

Я использую функцию numpy.loadtxt:

 data = numpy.loadtxt('test.data', delimiter=',') 

Проблема в том, что отсутствующие значения ломают loadtxt (я получаю «ValueError: невозможно преобразовать строку в float:» , без сомнения, из-за двух или более последовательных разделителей).

Есть ли способ сделать это автоматически, с loadtxt или другой функцией, или мне нужно укусить пулю и разобрать каждую строку вручную?

2 Solutions collect form web for “Чтение данных из текстового файла с отсутствующими значениями”

Я бы, вероятно, использовал genfromtxt :

 >>> from numpy import genfromtxt >>> genfromtxt("missing1.dat", delimiter=",") array([[ 1., 2., 3., 4., 5.], [ 6., nan, nan, 7., 8.], [ nan, nan, 9., 10., 11.]]) 

и затем делайте что-нибудь с nans (измените их на что-то, используйте вместо этого маску и т. д.). Некоторые из них можно сделать inline:

 >>> genfromtxt("missing1.dat", delimiter=",", filling_values=99) array([[ 1., 2., 3., 4., 5.], [ 6., 99., 99., 7., 8.], [ 99., 99., 9., 10., 11.]]) 

Будьте осторожны, что для этого, согласно моему тесту, клетки-каркасы не обнаруживаются, а только числовые значения, поэтому, если у вас есть таблица со строками и числами, должен быть какой-то другой способ.

Мой пример:

 upeak_names.txt: id name Distance name2 Distance2 name3 Distance3 upeak-3 NOC2L -161 KLHL17 -1135 NOC2L -162 >>>table= genfromtxt('upeak_names.txt', delimiter="\t") >>>comb_table[2,] >>>array([ nan, nan, -161., nan, -1135., nan, -162.]) 
  • Как аутентифицироваться с помощью API Google Spreadsheets с помощью службы клиента / обнаружения Python?
  • Не удалось импортировать MongoClient
  • Что касается установки SciPy из PyCharm
  • Поместить заголовок с Python - docx
  • Как подключить функцию страницы к следующей кнопке qwizard?
  • Изменение параметров OptionMenu при нажатии кнопки
  • Любой способ правильно напечатать упорядоченные словари?
  • Ошибка Json.dump с 'должен быть unicode, а не str' TypeError
  • Python - лучший язык программирования в мире.