2016-08-11 5 views
3

簡単な質問:scipyでPearsonのr関数で 'dropna'を使う方法はありますか?私はパンダと組み合わせて使用​​しています。私のデータの中には穴があります。私はあなたがSpearmanのrでolder versions of scipyの 'nan'を抑制できると知っていましたが、その機能は現在失われています。scopy/pandasでPearsonのrで 'nan'をドロップする

私の考えによれば、これはほのぼの改善のように思えるので、明らかに何かが欠けているのだろうかと思います。

マイコード:

for i in range(len(frame3.columns)):  
    correlation.append(sp.pearsonr(frame3.iloc[ :,i], control['CONTROL'])) 
+0

はい、あなたはそれに 'dropna'を使うことができます。あなたの質問は何ですか? –

+0

本当ですか?追加するたびにインデックスエラーが発生します。上記のコードを追加しました。それを置くための適切な場所はどこですか? – Lodore66

+1

* "...その機能は現在欠落しています。" *あなたは 'nan_policy'引数を参照していますか?それはまだ「スピアマン」です。実際、「古いバージョン」と呼ばれるリンクは、最新のリリース0.18.0のドキュメントです。どのバージョンを使用していますか? 'import scipy;を実行してチェックしてください。 print(scipy .__バージョン__) ' –

答えて

4

あなたはこのようnp.isnanを使用することができます。

for i in range(len(frame3.columns)):  
    x, y = frame3.iloc[ :,i].values, control['CONTROL'].values 
    nas = np.logical_or(x.isnan(), y.isnan()) 
    corr = sp.pearsonr(x[~nas], y[~nas]) 
    correlation.append(corr) 
+0

素晴らしい!これはうまく動作します。本当にありがとう! – Lodore66

+0

ようこそ。がんばろう。 –

1

ます。また、一時的なデータフレームを作成してみてください、そして内蔵のピアソン相関を計算するための方法、または使用パンダを使用することができます一時的なデータフレーム内の.dropnaメソッドは、sp.pearsonrを使用する前にヌル値をドリルアップします。

+0

これは、参加についていくつかの仮定をしています。例えば、インデックスは互換性があります –

関連する問題