Python: чтение файла CSV и построение разброса

Я написал скрипт для вычисления больших CSV-файлов с размерами: 27000 строк x 22 столбца. Как я могу прочитать файл CSV, чтобы использовать его в matplotlib на разбросанном графике, подобном тому, что в этой теме?

диапазон осей на точечных диаграммах

Концепция создания точечной диаграммы понятна. Были предприняты попытки проанализировать файл csv, например:

data=csv.reader(open('some_file.csv, 'rb'), delimiter='|', quotechar='"')

но безуспешно.


person Daniyal    schedule 27.02.2012    source источник
comment
Что конкретно означает, но безуспешно? Можете ли вы предоставить сообщения об ошибках или другие указания на то, что не так? Мы не можем догадаться.   -  person S.Lott    schedule 28.02.2012
comment
Нам нужна дополнительная информация, но в вашем коде также есть синтаксическая ошибка, опубликованная здесь: 'somefile.csv нужна закрывающая одинарная кавычка. Это была просто опечатка?   -  person Mike    schedule 28.02.2012
comment
@Mike: Без фактического сообщения об ошибке это вполне может быть проблемой. Или. Проблема может заключаться в том, что данные — это только читатель, а не желаемые фактические данные.   -  person S.Lott    schedule 28.02.2012
comment
извинения за поздний ответ. Я сделал две серьезные ошибки: 1-я выбрала неправильный разделитель, 2-я ошибка была маркусом, и dm указал на него: я не имел в виду, что данные - это файлоподобный объект... и, вероятно, 3-я ошибка : Я не был точным в отношении проблем, которые у меня были blush.   -  person Daniyal    schedule 28.02.2012


Ответы (3)


Вот быстрое решение

def getColumn(filename, column):
    results = csv.reader(open(filename), delimiter="\t")
    return [result[column] for result in results]

и тогда вы можете использовать его так

time = getColumn("filename",0)
volt = getColumn("filaname",1)

plt.figure("Time/Volt")
plt.xlabel("Time(ms)")
plt.ylabel("Volt(mV)")
plt.plot(time,volt)
person kechap    schedule 27.02.2012

В качестве общей альтернативы вас может заинтересовать пакет pandas python от Уэса МакКинни: http://pandas.pydata.org/

Это буквально изменило мою жизнь для анализа данных с помощью Python. Он предоставляет python структуру данных, похожую на R data.frame, но даже более мощную. И это построено поверх numpy.

И он будет очень легко читать файлы csv, загружая данные в DataFrame (подкласс массива numpy), который можно легко нарезать и манипулировать.

person Uri Laserson    schedule 28.02.2012

Это правильный разделитель? Вы читали документацию? http://docs.python.org/library/csv.html

data — файлоподобный объект. вы должны перебрать его, чтобы получить доступ к данным. каждая строка представляет собой список, как указывает Маркус в своем примере.

person dm03514    schedule 27.02.2012