2014-11-21 4 views
5

Я пытаюсь читать CSV-файл с NumPy и я следующий кодgenfromtxt возвращающие строки NaN

from numpy import genfromtxt 
data = genfromtxt(open('errerr.csv', "r"), names=True, delimiter=',') 

и следующий выходит

(nan, nan, nan, nan, nan, nan, nan), 
     (nan, nan, nan, nan, nan, nan, nan), 
     (nan, nan, nan, nan, nan, nan, nan)], 
     dtype=[('name', '<f8'), ('severity', '<f8'), ('Message', '<f8'), ('AppDomainName', '<f8'), ('ProcessName', '<f8'), ('clientid', '<f8'), ('type', '<f8')]) 

DTYPE выглядит прекрасно

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

import csv 
f = open('errors.csv', 'rt') 
reader = csv.reader(f) 
data = [] 
for r in reader: 
    data.append(r) 
f.close() 

, который прекрасно работает, но им пытаются выяснить, Что сделка с genfromtxt

вот пример из CSV

name,severity,Message,AppDomainName,ProcessName,clientid,type 
Strings strings,Error,") Thread Name: Extended Properties:",SunDSrvc.exe,C:\Program Files\\SunDSrvc.exe,5DAA9377 ,Client 
Strings strings,Error,") Thread Name: Extended Properties:",SunDSrvc.exe,C:\Program Files\\SunDSrvc.exe,5DAA9377 ,Client 
Strings strings,Error,") Thread Name: Extended Properties:",SunDSrvc.exe,C:\Program Files\\SunDSrvc.exe,5DAA9377 ,Client 
+3

Обратите внимание, что если вы обрабатываете текстовые данные, как это [ 'pandas'] (http://pandas.pydata.org), вероятно, будет лучшим выбором, чем голый numpy; 'pd.read_csv (" yourfile.csv ")' будет работать из коробки. – DSM

+2

Я буду делать что-то еще с numpy, поэтому id скорее придерживается одного фрейма, если возможно – Marcom

ответ

8

Ваш dtype не в порядке. Он задает '<f8', поплавок, для каждого из полей. Вам нужны строки. Попробуйте dtype=None:

np.genfromtxt(txt,delimiter=',',names=True,dtype=None) 

, который производит:

array([ ('Strings strings', 'Error', '") Thread Name: Extended Properties:"', 'SunDSrvc.exe', 'C:\\Program Files\\SunDSrvc.exe', '5DAA9377 ', 'Client'), 
     ('Strings strings', 'Error', '") Thread Name: Extended Properties:"', 'SunDSrvc.exe', 'C:\\Program Files\\SunDSrvc.exe', '5DAA9377 ', 'Client'), 
     ('Strings strings', 'Error', '") Thread Name: Extended Properties:"', 'SunDSrvc.exe', 'C:\\Program Files\\SunDSrvc.exe', '5DAA9377 ', 'Client')], 
     dtype=[('name', 'S15'), ('severity', 'S5'), ('Message', 'S39'), ('AppDomainName', 'S12'), ('ProcessName', 'S29'), ('clientid', 'S9'), ('type', 'S6')]) 

(я удалил посторонний материал о разделителей в кавычках)

+0

That '') ... 'меня перепутали. Я удалю материал о дополнительных разделителях. – hpaulj

+0

Это сделало трюк У меня был этот набор в какой-то момент, но у меня были другие проблемы при очистке данных, которые привели меня в заблуждение. Спасибо :) – Marcom

Смежные вопросы