私は既に一定の条件に適合しないものを取り除くためにすでにフィルタリングしている気象変数の長いリストを持っています。たとえば、すべてのデータポイントは午前11時(午後11時)と午後5時(午後17時)の間にのみ存在します。 11時から17時の間のデータは単一のイベントを表し、毎日はイベントを含んでいません。私は、どの曜日にイベントを開催したかを判断しようとしています。新しいイベントが起こっていることは、時間(HH24)の値が前の値よりも低い値のたびに発生していることを私は知っています。例えば。 16(午後5時)の値の後に11,12,13,14または15が続く場合、データが新しい日とイベントに進行したことがわかります。csvファイルを解析して相対サイズに応じて行をファイルに書き込む
書き込みしようとしているコードでは、この最後の値(17など)を含む行がファイルに書き込まれ、次の行が書き込まれます。このようにして、新しいcsvファイルには、すべてのイベントの開始時刻(およびその他の情報)と終了時刻が含まれます。私はforコマンドを使用する必要があると仮定しますが、私はこの特定の課題に対してcsvライターでこれを行う方法がわかりません。私のコードの概要は以下の通りです。#
import csv
with open("weather_out_2000_2006_time_filtered_and_speed_filtered.csv", "rb") as input, open("X:\weatherresults\seabreezeevents.csv", "wb") as wanted:
reader = csv.DictReader(input, delimiter=",", skipinitialspace=True)
fieldnames = reader.fieldnames
writer_wanted = csv.DictWriter(wanted, fieldnames, delimiter=",")
writer_wanted.writeheader()
for line_number, row in enumerate(reader):
try:
if float(row["HH24"]) < #the value in the subsequent row:
writer_wanted.writerow(row) # and also write subsequent row
except:
print "Failed to parse line", line_number
print row
私のデータファイルはこのように見えます。私はHH24の値が高い値から低い値への移行を示しているので、私の意味を理解することができます。
hd,Station Number,Year Month Day Hours Minutes in YYYY,MM,DD,HH24,MI format in Local time,Year Month Day Hours Minutes in YYYY,MM,DD,HH24,MI format in Local standard time,Year Month Day Hours Minutes in YYYY,MM,DD,HH24,MI format in Universal coordinated time,Precipitation since last (AWS) observation in mm,Quality of precipitation since last (AWS) observation value,Air Temperature in degrees Celsius,Quality of air temperature,Air temperature (1-minute maximum) in degrees Celsius,Quality of air temperature (1-minute maximum),Air temperature (1-minute minimum) in degrees Celsius,Quality of air temperature (1-minute minimum),Wet bulb temperature in degrees Celsius,Quality of Wet bulb temperature,Wet bulb temperature (1 minute maximum) in degrees Celsius,Quality of wet bulb temperature (1 minute maximum),Wet bulb temperature (1 minute minimum) in degrees Celsius,Quality of wet bulb temperature (1 minute minimum),Dew point temperature in degrees Celsius,Quality of dew point temperature,Dew point temperature (1-minute maximum) in degrees Celsius,Quality of Dew point Temperature (1-minute maximum),Dew point temperature (1 minute minimum) in degrees Celsius,Quality of Dew point Temperature (1 minute minimum),Relative humidity in percentage %,Quality of relative humidity,Relative humidity (1 minute maximum) in percentage %,Quality of relative humidity (1 minute maximum),Relative humidity (1 minute minimum) in percentage %,Quality of Relative humidity (1 minute minimum),Wind (1 minute) speed in km/h,Wind (1 minute) speed quality,Minimum wind speed (over 1 minute) in km/h,Minimum wind speed (over 1 minute) quality,Wind (1 minute) direction in degrees true,Wind (1 minute) direction quality,Standard deviation of wind (1 minute),Standard deviation of wind (1 minute) direction quality,Maximum wind gust (over 1 minute) in km/h,Maximum wind gust (over 1 minute) quality,Visibility (automatic - one minute data) in km,Quality of visibility (automatic - one minute data),Mean sea level pressure in hPa,Quality of mean sea level pressure,Station level pressure in hPa,Quality of station level pressure,QNH pressure in hPa,Quality of QNH pressure,#
hd,40842,2000,3,22,13,40,2000,3,22,13,40,2000,3,22,13,40,0,N,20.4,N,20.5,N,20.4,N,20.2,N,20.2,N,20.1,N,20.1,N,20.1,N,20,N,98,N,,N,,N,9,N,8,N,18,N,7,N,11,N,,N,1013.3,N,1012.2,N,1013.3,N,#
hd,40842,2000,3,22,13,47,2000,3,22,13,47,2000,3,22,13,47,0,N,20.5,N,20.5,N,20.5,N,20.2,N,20.2,N,20.2,N,20.1,N,20.1,N,20,N,97,N,,N,,N,4,N,0,N,56,N,75,N,5,N,,N,1013.2,N,1012.1,N,1013.2,N,#
hd,40842,2000,3,23,11,0,2000,3,23,11,0,2000,3,23,11,0,0,N,23.4,N,23.4,N,23.3,N,21.3,N,21.4,N,21.3,N,20.2,N,20.3,N,20.2,N,82,N,,N,,N,8,N,5,N,66,N,2,N,9,N,,N,1013.6,N,1012.5,N,1013.6,N,#
hd,40842,2000,3,23,11,1,2000,3,23,11,1,2000,3,23,11,1,0,N,23.4,N,23.4,N,23.4,N,21.4,N,21.4,N,21.3,N,20.3,N,20.3,N,20.2,N,82,N,,N,,N,8,N,5,N,68,N,3,N,9,N,,N,1013.6,N,1012.5,N,1013.6,N,#
入力から取得するサンプル出力csvを表示します。 – vittore
私はそれがあなたが望むように動作するとは思わない。あなたは日付も見なければなりません。例えば、 16(午後5時)の値に11,12,13,14、または15が続く場合、データが新しい日とイベントに進んでいることがわかります。本当に十分ですが、11の値のあとに12と13が続く場合、新しいイベントかどうかはわかりません。なぜなら、同じ日にはそうでない場合、別の日にあります。 – Gerrat
それは意味があります。それを指摘してくれてありがとう。 –