【发布时间】:2015-01-19 21:28:20
【问题描述】:
我正在尝试使用 numpy 读取 csv 文件,并且我有以下代码
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
【问题讨论】:
-
请注意,如果您正在处理这样的文本数据,
pandas可能是比裸 numpy 更好的选择;pd.read_csv("yourfile.csv")可以开箱即用。 -
我会用 numpy 做一些其他的事情,所以如果可能的话,我宁愿坚持一个框架