【发布时间】:2014-06-03 13:49:05
【问题描述】:
我正在处理一个项目,我有两个 csv 文件已转换为 2D 列表。我有 List1 在某个区域内有一定数量的钻孔,而 List2 有相应的多个值来计算平均值、最小值和最大值。我遇到了麻烦,因为我认为该功能是:
不跳过列表中值的标题,因此得不到整数
可能甚至没有比较这两个列表,因为我一直卡在第 1 步
到目前为止,我所拥有的是:
def height(bReader, dataList):
print "Height function ran, but no result"
# bReader is bores inside polygon
# dataList BORE_DATA.csv as 2D list
avgHeight = 0
minN = 9e99
maxPh = 0
numCount = 0
for row in bReader:
for row2 in dataList:
if row[0] == row2[0]:
if row2[1] == '':
if row2[1][0] == '<':
row2[1] = row2[1][:1]
avgHeight += row2[4]
numCount += 1
print row2[4]
# Checks the minimum values of Nitrogen
if row2[6] < minN:
minN = row2[6]
# Checks the maximum values of Phosphorous
if row2[5] < maxPh:
maxPh = row2[5]
if lastID != row2[0]:
# Checks for final value before moving to next bore
aveHeight = avgHeight / numCount
print row[0]
print "Average Water Level" + aveHeight
print "Minimum Nitrogen" + minN
print "Maximum Phosphorous" + maxPh
avgHeight = 0
minN = 9e99
maxPh = 0
numCount = 0
lastID = row[0]
这是回溯错误:
Traceback (most recent call last):
File "C:\Users\Lounge\Desktop\V2\ReRun V2.py", line 39, in main
height(levelsList, bdataList)
File "C:\Users\Lounge\Desktop\V2\ReRun V2.py", line 263, in height
for row in bReader:
TypeError: 'function' object is not iterable
样本数据:
List1 数据
REFERENCE EASTING NORTHING TOC ELEVATION (m)
61610628 384835 6489341 20.24
List2 数据
BORE REF NR BORE NAME SAMPLE DATE water level (m) TDSolids (mg/L) pH N (mg/L) P (mg/L)
61610628 JP20B 23/06/2000 3.71 430 8.8 0.28 0.007
61610628 JP20B 27/10/2000 3.18 610 7.2 1.3 0.019
【问题讨论】:
-
“遇到麻烦” - 这到底是什么意思?
-
追溯或样本数据将是无价的。如果您真的只是因为第一行错误而遇到麻烦,那么
cols = dataList.pop(0)会删除它。