我的問題:我有一個csv
文件,其數據深度在90到3米之間,並且數據會像這樣來回移動。我正在使用最新的python。如何通過python中的csv文件中的範圍進行排序?
ex。 (深度)88,77,50,20,5,90,76,54,34,15,8,4,81,74,62,51,49,30,22,10,8 ...等等。它保持從90到3,然後再回來。
我想要做的是每次它在90和3之間分開數據。一旦它分開,我想要在列表中的最後和第一個值。 像這樣 ex。 (此處分開),90,76,54,34,15,8,4(此處分離)81,74,62,51,49,30,22,10,8在此分開)... 等等。它保持從90到3,然後再回來。
我該如何去做這件事?或者我會如何將他們分成列表,然後使用他們每個人的數據?
下面的代碼我到目前爲止:
import csv, numpy
from collections import defaultdict
columns = defaultdict(list) # each value in each column is appended to a list
with open('C:\\Users\\AdamStoer\\Documents\\practicedata.csv') as f:
reader = csv.DictReader(f,delimiter=',') # read rows into a dictionary format
for row in reader:
r = float(row['roll'])
p = float(row['pitch'])
if 0.21 <= p <= 0.31:
if -0.06 <= r <= 0.06:
columns['pitch'].append(row['pitch'])
columns['roll'].append(row['roll'])
columns['i_depth'].append(row['i_depth'])
columns['irrad2'].append(row['sci_ocr504i_irrad2'])
print ('Pitch:')
print (columns['pitch'])
print ('Roll:')
print (columns['roll'])
print ('Depth')
print (columns['i_depth'])
print ("Irrandiance(2):")
print (columns['irrad2'])
irradlst = columns['irrad2']
irradfirst = irradlst[0]
irradlast = irradlst[-1]
depthlst = columns['i_depth']
depthfirst = depthlst[0]
depthlast = depthlst[-1]
print ("\nDepth 1 is " + depthfirst + " and " + "Depth 2 is " + depthlast)
print ("\nIrradiance 1 is " + irradfirst + " and " + "Irradiance 2 is " + irradlast)
#Find the Volume Attenuation Coefficient
#irranddiv = deepest/shallowest
irraddiv = float(irradfirst)/float(irradlast)
#depthdif = deepest-shallowest
depthdif = float(depthfirst) - float(depthlast)
#Find Log of irraddiv
irradlog = numpy.log(irraddiv)
#Find K
K = irradlog/(-depthdif)
print("\nAttenuation Coefficient")
print (K)
謝謝你的回答! – Adam
我想知道你能否解釋一下你的代碼? – Adam
@Adam我加了一些代碼說明 – ali