2017-08-18 1 views
0

私たちはPythonでいくつかのパンダをフィルタリングする方法を学んだので、パブリックデータセットでこれを試してみると思いました。 (http://data.wa.aemo.com.au/#stem-bids-and-offersパンダ - テキストとデータのフィルタリング

私はこれに8月のデータを使用しました。

私が設定した挑戦は、$/MWh> 0でのみフィルタリングすることでしたが、それは単価でなければなりませんでした。 np.logical_andをフィルタリングする方法を学びましたが、私が見つけた問題は数値か論理的にフィルタリングできることです。両方ではありません。

私はデータと視覚化を取り入れていますが、テキストと数値フィールドによるフィルタリングの方がはるかに効率的な方法があると確信しています。私のアプローチの問題は、文字サイズが異なる場合にのみ機能することです。すなわち、それが入札またはFibを言った場合。私は両方を拾うだろう。私はのみ入札して欲しいです。 誰も私を正しい方向に向けることができますか?ここで

は私のコードです:

#Task: I want to filter out ONLY positive $/MWh bids 
#This requires 2 filters - 1 to filter out the $MWh > 0 and 1 to filter by Bids 

# Try converting this to a numpy array and using the filtering mechanisms there 
import numpy as np 
df = pd.read_csv('stem-bids-and-offers-2017-08.csv') 
df.head(5) 
#I don't know how to filter by 'text' just yet so I will have to use another way which is using the len function 
#This will reduce the bid/offer field to characters 

df['boLength'] = df['Bid or Offer'].apply(len) 
df.head(5) 
filtByPriceBid = np.logical_and(df['Price ($/MWh)'] > 0, df['boLength'] == 3) 
filtByPriceBid.head(5) 

df2 = df[filtByPriceBid] 
df2.head(10) 

sns.kdeplot(df2['Price ($/MWh)'], shade=True) 

PS:私はこのから出てきたKDEのプロットを添付しました。誰でもこれについての解釈を提供したい場合は、自由に行ってください!私は正規化された分布を期待していたが、残念なことに、これは当てはまりません。

enter image description here

答えて

0

私は、これはあなたが探しているものであると思います。

あなたは

sns.kdeplot(df[(df['Price ($/MWh)'] > 0) & (df['Bid or Offer']=='Bid')]['Price ($/MWh)'], shade=True) 
+0

興味深い複数のフィルタを一緒に持って&を使用することができます - あなたは[]秒で価格$/MWhとと[] []表記を使用なぜあなたは説明できますか? – azurekirby

+0

ITは容易にdf [条件] [列]として表すことができます。パンダはこのような多くの機能を提供しています。 https://pandas.pydata.org/pandas-docs/stable/10min.html –

+0

これがあなたの問題を解決した場合、それを回答として受け入れてください。 –

関連する問題