Как читать CSV без первого столбца

Я пытаюсь прочитать простой CSV-файл, как показано ниже, и поместить его содержимое в 2D-массив:

"","x","y","sim1","sim2","sim3","sim4","sim5","sim6","sim7","sim8","sim9","sim10","sim11","sim12" "1",181180,333740,5.56588745117188,6.29487752914429,7.4835410118103,5.75873327255249,6.62183284759521,5.81478500366211,4.85671949386597,5.90418815612793,6.32611751556396,6.99649047851562,6.52076387405396,5.68944215774536 "2",181140,333700,6.36264753341675,6.5217604637146,6.16843748092651,5.55328798294067,7.00429201126099,6.43625402450562,6.17744159698486,6.72836923599243,6.38574266433716,6.81451606750488,6.68060827255249,6.14339065551758 "3",181180,333700,6.16541910171509,6.44704437255859,7.51744651794434,5.46270132064819,6.8890323638916,6.46842670440674,6.07698059082031,6.2140531539917,6.43774271011353,6.21923875808716,6.43355655670166,5.90692138671875 

Для этого я использую это:

 data = np.loadtxt("Data/sim.csv", delimiter=',', skiprows=1) 

Но я всегда получал это сообщение:

 "ValueError: could not convert string to float: "1" 

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

Итак, как я мог игнорировать первый столбец? Есть ли способ прочитать этот файл с первым столбцом?

3 Solutions collect form web for “Как читать CSV без первого столбца”

Вы можете указать конвертер для любого столбца.

 converters = {0: lambda s: float(s.strip('"')} data = np.loadtxt("Data/sim.csv", delimiter=',', skiprows=1, converters=converters) 

Или вы можете указать, какие столбцы использовать, например:

 data = np.loadtxt("Data/sim.csv", delimiter=',', skiprows=1, usecols=range(1,15)) 

http://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html


Один из способов пропустить первый столбец, не зная количества столбцов, – это прочитать количество столбцов из csv вручную. Это достаточно легко, хотя вам, возможно, потребуется настроить это, чтобы объяснить форматирование несоответствий *.

 with open("Data/sim.csv") as f: ncols = len(f.readline().split(',')) data = np.loadtxt("Data/sim.csv", delimiter=',', skiprows=1, usecols=range(1,ncols+1)) 

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

Вы можете использовать pandas и читать его как объект DataFrame. Если вы знаете нужный столбец, просто добавьте .drop в строку загрузки:

 a = pandas.read_csv("Data/sim.csv",sep=",").drop(a.columns[0], axis=1) 

Первая строка будет считана как заголовок, но вы можете добавить skiprows = 1 в параметр read_csv. Pandas DataFrames – это массивы numpy, поэтому преобразование столбцов или матриц в массивы numpy довольно просто.

Попытка чтения csv-файла с использованием библиотеки csv

 import csv def someFunc(fname): with open(fname) as f: reader = csv.reader(f) i = 0 header = True for row in reader: if header: header = False continue out[i] = [row[j] for j in range(len(columns))] i += 1 return out 

out будет иметь 2D-массив.

  • Интерполирование рассеянных данных из тома с пустым пространством
  • настройка только одной стороны меток в matplotlib с использованием шипов
  • Python MemoryError при установке с помощью Scikit-learn
  • Определение того, содержит ли список определенный массив numpy
  • NumPy - В чем разница между буфером и строкой?
  • неожиданные различия в размерах памяти при возникновении пула многопроцессорности python
  • Чрезмерное взаимопревращение между многомерным и линейным индексированием
  • передача аргументов функции для подгонки
  •  
    Interesting Posts for Van-Lav

    Python: One Try Multiple Except

    Получить элемент списка по атрибуту в Python

    Запись неформатированных файлов Fortran с помощью Python

    добавляется одна дополнительная строка, когда я открываю CSV-файл в окне. Это наблюдается только тогда, когда я отправляю CSV-файл в качестве вложения в электронную почту

    В python есть хорошая идиома для использования контекстных менеджеров в настройке / отрыве

    Regex Python находит все совпадающие совпадения?

    Трубопровод Scikit-Learn's: решена малая матрица, но требуются плотные данные

    Рендеринг HTML в web.py

    Попытка отправить «альтернативу» с MIME, но она также появляется в надежном почтовом клиенте

    Как использовать многопроцессорность в python

    атрибуты python: class и атрибуты экземпляра

    Как отлаживать вызов win32com в python

    ValueError: требуется больше 1 значения для распаковки

    Выберите 5 различных элементов из списка?

    Python Реализация алгоритма Витерби

    Python - лучший язык программирования в мире.