這是我的問題。
我有一個數據幀df其中包含兩列名爲日期和wd。
而和表示範圍從(0〜360)的風向。
因此,df表示在某個時間範圍內某處的風向。將風向分爲幾類
我想那些風向分爲16類像這樣:
http://7xrn7f.com1.z0.glb.clouddn.com/16-3-8/30080798.jpg
的範圍這裏介紹。
http://7xrn7f.com1.z0.glb.clouddn.com/16-3-8/8398960.jpg
這是我能對付現在:
wd_stat = []
for i in range(0,len(df),1):
wd = df.wd.iloc[i]
### NNE 11.25-33.75
if 11.25 <= wd < 33.75:
wd_stat.append("NNE")
### NE 33.75-56.25
if (33.75 <=wd < 56.25):
wd_stat.append("NE")
### ENE 56.25 - 78.75
if (56.25 <=wd < 78.75):
wd_stat.append("ENE")
if (78.75 <=wd < 101.25):
wd_stat.append("E")
if (101.25 <=wd < 123.75):
wd_stat.append("ESE")
.....not done yet......
我的方法不夠靈活和傾倒。
任何人都可以提供一些建議,以高效率處理這樣的分類問題(數字範圍到某些字符)。
它確實是非常優雅的解決方案! – MaxU
太麻煩了!謝謝! –
另一個問題在這裏。在你的方法中,[0〜11.25]範圍被替換爲[360〜371.25]。所以我想知道在數字化之前在這些列中添加360。使用'df.iloc [df.loc [0 <= df ['wd'] <11.25] .index] [「wd」] + 360'無法實現。如何基於某些分類將特定行添加到常量? –