2011-10-30 111 views
1

我想分析Excel文件中的文本数据。 我知道如何通过Python读取Excel文件,但是每一条数据都成为一个列表中的一个值。但是,我想分析每个单元格中的文本。在Excel文件中用于NLTK的Python

这里是我的Excel文件的例子:

 
NAME INDUSTRY  INFO  
A  FINANCIAL  THIS COMPANY IS BLA BLA BLA 
B  MANUFACTURE  IT IS LALALALALALALALALA  
C  FINANCIAL  THAT IS SOSOSOSOSOSOSOSO  
D  AGRICULTURE  WHYWHYWHYWHYWHY 

我想分析一下,比方说,使用NLTK,金融行业的公司信息,如的“IT”的频率。

这是我到目前为止(是的,这是行不通的!):

import xlrd 
aa='c:/book3.xls' 
wb = xlrd.open_workbook(aa) 
wb.sheet_names() 
sh = wb.sheet_by_index(0) 

for rownum in range(sh.nrows): 
    print nltk.word_tokenize(sh.row_values(rownum)) 
+2

什么不行?可能有很多方法“不起作用”。你能给我们一个错误代码(整个回溯),还是意想不到的行为? – Blender

回答

0

你传入行中的所有值word_tokenize,但你只是在什么是在第三感兴趣柱。您还正在处理标题行。试试这个:

import xlrd 
book = xlrd.open_workbook("your_input_file.xls") 
sheet = book.sheet_by_index(0) 
for row_index in xrange(1, sheet.nrows): # skip heading row 
    name, industry, info = sheet.row_values(row_index, end_colx=3) 
    print "Row %d: name=%r industry=%r info=%r" % 
     (row_index + 1, name, industry, info) 
    print nltk.word_tokenize(info) # or whatever else you want to do