Python和excel读取文件问题
我很抱歉,如果这是一个愚蠢的问题,但我已经为此工作了几个小时,我无法使它工作。请帮忙 我有一个源于Excel的.txt文件。该文件包含字符串和数字,但我只对数字感兴趣,这就是为什么我跳过第一行,只从第2列开始阅读Python和excel读取文件问题,python,string,floating-point,Python,String,Floating Point,我很抱歉,如果这是一个愚蠢的问题,但我已经为此工作了几个小时,我无法使它工作。请帮忙 我有一个源于Excel的.txt文件。该文件包含字符串和数字,但我只对数字感兴趣,这就是为什么我跳过第一行,只从第2列开始阅读 from numpy import * 我把它加载到Python中 infile = open('europenewMatrix.txt','r') infile.readline() # skip the first line numbers = [l
from numpy import *
我把它加载到Python中
infile = open('europenewMatrix.txt','r')
infile.readline() # skip the first line
numbers = [line.split(',')[2:] for line in infile.readlines()]
infile.close()
因为我需要用它进行计算,所以我把它转换成一个矩阵:
travelMat = array(numbers)
好的,但这并没有将字符串转换为整数,所以我手动执行:
for i in xrange(len(numbers)):
for j in xrange(len(numbers)):
travelMat[i,j] = int(self.travelMat[i,j])
#end for
此时,我希望我的所有条目都是整数
但如果我这样做了
print 'type is',type(self.travelMat[1,2])
答案是:
type is <type 'numpy.string_'>
类型为
我怎样才能真正把所有的条目转换成整数呢?
非常感谢 在创建阵列之前,在读取数字时转换数字:
infile = open('europenewMatrix.txt','r')
infile.readline() # skip the first line
numbers = []
for line in infile:
numbers.append([int(val) for val in line.split(',')[2:]])
infile.close()
travelMat = array(numbers)
如果您正在使用csv或类似csv的文件,请使用csv标准库模块
from numpy import *
import csv
infile = open('europenewMatrix.txt', 'r')
reader = csv.reader(infile)
reader.next() # skip the first line
numbers = [[int(num) for num in row[2:]] for row in reader]
infile.close()
travelmat = array(numbers)
如果有人提出的问题可能标题相同,但使用的是真正的Excel(.xls)文件,请尝试以下操作(使用模块):
“from numpy import*”不是很好,因此如果您修复this@artsiom-rudzenka我同意,但这超出了问题的范围。@用户-可能是,但可能不是-我认为最好向提问者提供建议,直到第5行:o中缺少括号为止)
import xlrd
import numpy as np
sheet = xlrd.open_workbook('test_readxls.xls').sheet_by_name('sheet1')
n_rows, n_cols = 5,2
data = np.zeros((n_rows, n_cols))
for row in range(n_rows):
for col in range(n_cols):
data[row,col] = float(sheet.cell(row,col).value)