2012-10-26 4 views
0

나는 27 개의 열이있는 Excel 파일이 있습니다. 파이썬 코드를 작성하여 칼럼별로 열을 읽고 coloum에 마지막 5 개의 값을 저장합니다. 칼럼에 수학 방정식이 저장됩니다.열을 읽고 Excel에서 특정 수학을 수행

지금까지이있다 :

from math import tan 

#Write Header 
#outFile.write('Test Name,X+ avg,X+ std,X+ count,X- avg,X- std,X- count,X angle,Y+ avg,Y+ std,Y+ count,Y- avg,Y- std,Y- count,Y angle\n') 

#for line in inFile: 


if 1==1: 

    line = [1,2,38.702,37.867,35.821, 44, 49,55,65,20,25,28,89.] 

    line0= len(line) 
    print "the list size" 
    print line0 

    line1 = len(line) -5 #takes the overall line and subtracts 5. 
    print "the is the start of the 5 #'s we need" 
    print line1 #prints the line 

    d= line[line1:line0]  #pops all the values from in the line (..) 
    print "these are the 5 #'s we need" 
    print d 

    lo=min(d) 
    hi=max(d) 


    print "the lowest value is" 
    print lo 


    print "the highest value is" 
    print hi 

    average1 = float (sum(d))/ len(d) #sum 
    print "the average of the values is" 
    print average1 

은 "광고 =. 1,2,38.702,37.867,35.821, 44, 49,55,65,20,25,28,89]" 내가 파이썬이 coloumn에서 자동으로 읽고, 마지막 5 개의 값을 저장하고 위의 수학 분석을 수행하기를 원합니다.

+1

'line'이라는 목록의 마지막 다섯 항목에 대해'line [-5 :]'를 수행하십시오. 자,이 Excel 파일은 진정한 Excel 파일입니까 아니면 CSV입니까? Excel 인 경우 .xls 또는 .xlsx입니까? Excel 파일을 여는 것이 문제입니까, 아니면 행에서 마지막 5 개의 값을 추출하는 것이 문제입니까? –

+0

글쎄, 파이썬은 열을 검색하고 마지막 5자를 저장하고이 수학을 적용하기를 원합니다. 내가 말했듯이, "line = [1,2,38.702,37.867,35.821, 44, 49,55,65,20,25,28,89]"방금 내 방정식이 작동하는 것을 보았습니다. 덕분에 – user1778360

답변

1

openpyxl과 같은 라이브러리를 사용하고 싶을 수도 있습니다. 여기에는 특정 셀에 액세스하는 방법에 대한 문서의 예가 나와 있습니다.

columnOffset = 2 # column offset is (the letter as a number - 1), a = (1-1), b = (2-1) 
rowOffset = 35 # row offset is row number - 1 

wb = load_workbook('test.xlsx') 
ws = wb.get_active_sheet() 
for column in ws.columns[columnOffset:27]: #because you have 27 columns to parse through 
    for rowIndex, cell in enumerate(column[-5:]): 
     if rowIndex >= rowOffset: 
      print cell.value 

불행히도 openpyxl에는 열에 대한 지원이 없으므로 색인을 사용하여 열을 가져와야합니다. xlrd는 2D 목록과 같은 스프레드 시트 전체를 취급, ​​그래서 완전히 파이썬 기반으로 0 예를 xlrd에 당신의 인덱스를 시작하는 기억처럼 xlrd

import xlrd 

wb = xlrd.open_workbook("C:\Users\Asus\Desktop\herp.xls") 
sh = wb.sheet_by_name(u'A Snazzy Title') 

for index in xrange(2, 4): 
    lastFive = sh.col_values(index, start_rowx=59, end_rowx=64) 
    print lastFive 

을 바탕으로

는 것 같습니다.

이 모듈을 지적하면 alexis입니다.

+0

데이터를 읽는 libararies를 다운로드하지 않고도이 라인을 따라 뭔가가 어때? INFILE = 개방 ("input_test.csv는", "R") OUTFILE = 개방 ("RESULTS.TXT", "w") INFILE 라인에 대한 은 : – user1778360

+0

user1778360 @, 나는 믿지 않는다 파이썬이 내장되어있다 당신에게 불행한 엑셀 지원. – John

+0

그래, 내가 openpyxl을 다운로드 할 수 있었다면 어떻게 마지막 5 개의 숫자에 도달 할 때까지 계속 반복해서 열을 출력 할 수 있을까? – user1778360

0

참고로 파이썬 엑셀 프로젝트 (http://www.python-excel.org/)의/xlwt도 있습니다. 또한 다운로드해야합니다. 나는 openpyxl을 사용한 적이 없기 때문에 어느 것이 더 낫다고 말할 수는 없다.

+0

xlrd/xlwt에 대해 들어 봤는데, 그 조합은 openpyxl보다 꽤 많은 기능을 가지고있는 것 같습니다. – John

관련 문제