2017-10-03 4 views
1

これは私のコードです!他の列の値をそのままパンダのデータフレームに保存する方法

df2 = pd.DataFrame({'b': [100,1,2,4,6,-55], 'a': ['a','b','c','d','e','f']}) 
df2=df2.sort_values(by='b',ascending=1) 
df2.index = pd.RangeIndex(len(df2.index)) 
# Computing IQR 
Q1 = df2['b'].quantile(0.25) 
Q3 = df2['b'].quantile(0.75) 
IQR = Q3 - Q1 
#filtering values 
filtered = df2.query('(@Q1 - 1.5 * @IQR) <= @df2 <= (@Q3 + 1.5 * @IQR)') 
filtered.dropna() 

私の出力は、私はこの

In [162]: filtered 
Out[162]: 
    a b 

1 b 1.0 
2 c 2.0 
3 d 4.0 
4 e 6.0 

のような出力は、誰もがこのような出力を得るために私を助けてくださいことができますしたいこの

In [162]: filtered 
Out[162]: 
    a b 
0 NaN NaN 
1 NaN 1.0 
2 NaN 2.0 
3 NaN 4.0 
4 NaN 6.0 
5 NaN NaN 

です!フィルタリングに問題があります。だれでも誰かに助けてくれますか?

答えて

0

あなたが列bためb@df2を変更する必要があるようだ:

filtered = df2.query('(@Q1 - 1.5 * @IQR) <= b <= (@Q3 + 1.5 * @IQR)') 
#if want remove NaNs rows 
filtered = filtered.dropna() 
print (filtered) 
    a b 
1 b 1 
2 c 2 
3 d 4 
4 e 6 
+1

それは私のために働いた、ありがとう –

+0

助けることができるうれしいです!私の答えが役に立ったら、[accept](http://meta.stackexchange.com/a/5235/295067)を忘れないでください。答えの横にあるチェックマーク( '✓')をクリックしてグレー表示にします記入してください。ありがとう。 – jezrael

関連する問題