2016-06-22 8 views
0

私は、列ごとに8760個の値をCSVファイルからいくつかの時間ごとの気象データを処理する必要があります。例えば、私は3未満M/Sを意味風速、の最も長いコヒーレント落ち着かとヒストグラムをプロットする必要があります。 は、私はすでに風速分布とのヒストグラムを作成しているが、この1は道困難です。だから私は3 m/s以下の連続時間を数えて一緒に数えて最後にプロットする文字列が必要です。どのようにして特定の数値よりも小さいコヒーレントな値を数えることができますか?

私の考えは、すべての値に「3未満」を要求する文字列を適用することです。そうであれば、新しい穏やかなものを作成し、答えがいいえになるまで続ける必要があります。最終的には、1時間から約1時間の間に多くの落ち着きがあります。 48時間。出力は、頻度でソートされたこれらの落ち着きのヒストグラムです。

+0

あなたは[アナコンダ](https://www.continuum.io/why-anaconda)に見ると、特に[必要がありますmatplotlibの(http://matplotlib.org/) –

+0

あるいは、[ 'itertools.groupby'(https://docs.python.org/2/library/itertools.html#itertools.groupby)。しかし、いずれにしても、あなたはSOに関する質問をする前に、あなた自身に何かもっと努力する必要があります。 – jonrsharpe

+1

ようこそStackOverflowへ。うまくいかないコードがありますか?もしそうなら、あなたはそれを見せてもらえますか? (私たちは通常あなたのためのプログラムを書いていません...それはプログラムの仕方を学ぶすべての喜びを取り去ります。) – rajah9

答えて

0

それはそのように思える場合、私は申し訳ありませんが、誰かが私のためのコードを記述し期待していませんでした。私はちょうどアイデアを求めたが、私はほとんどそれを得たと思う。 は、ここでは、すべての静穏なベクトルを作成し、辞書にそれを置く必要があり、これまでの私のコードです。それは動作しますが、すべてのキーは同じベクトルで満たされていますが、これを修正する方法がわかりません。 (ベクター自体は結構です、> < 3 =で始まり、=までカウント3)

#read column v_wind 
saved_column = df.v_wind 
fig, ax = plt.subplots() 

#collecting vectors in empty dictionary 
# array range 100 
vector_coll = {} 
a = np.array(range(100)) 

#for loop create vector 
#set calm to zero 
#i = calm vectors 
#b = empty array 
calm = 0 
i = -1 
b = [] 

for t in range(0, 8760, 1): 
    if df.v_wind[t] <= 3: 
     if calm == 0: 
     b = [] 
     b = np.append(b, [df.v_wind[t]]) 
     calm = 1 
    else: 
     b = np.append(b, [df.v_wind[t]]) 
else: 
    calm = False 
    calm = 0 
    i = i + 1 
    for i in np.array(range(100)): 
     vector_coll[str(a[i])] = b 

#print(vector_coll.keys()) 
#print(vector_coll['1']) 

for i in vector_coll.keys(): 
if vector_coll[i] == []: 
    print('empty') 
else: 
    print('full')  
関連する問題