2016-12-15 7 views
1

私はパンダのDataFrameを持っています。データフレームで操作を実行すると、シリーズに戻ります。どのようにしてそのシリーズを使用して、一致するレコードのみを選択できますか?シリーズ値でDataFrameデータベースを選択

今、私はDataFrameに列を追加し、データフレームに対してクエリを実行してから列を削除します。私は本当にこのソリューションが気に入らないので、私はより良い解決策を得ることができると思っています。インデックス項目1データフレームのオブジェクトの項目1に一致するよう

data = [[1,2,3], [1,3,4], [3,4,5]] 
columns = ['a', 'b', 'c'] 
df = pd.DataFrame(data, columns=columns) 
series = df.myoperation() 
df['myoperation'] = series 
res = df[df['myoperation'] == True] 
del res['myoperation'] 

series目的は、1-1マッチを生成します。

これは私のハックコードですが、データフレームにこのような単純な例よりも多くの列やデータがあると、恐れがあります。

は私がseries場合に使用することができると思うあなた

答えて

2

ありがとうdfdfと同じインデックスと同じ長さのブールSeriesである - それがboolean indexingと呼ばれている:

series = pd.Series([True, False, True], index=df.index) 
res = df[series] 
print (res) 
    a b c 
0 1 2 3 
2 3 4 5 

それは常にbooleanリストと連携し、配列番号はdfと同じでなければなりません。

L = [True, False, True] 
res = df[L] 
print (res) 
    a b c 
0 1 2 3 
2 3 4 5 

arr = np.array([True, False, True]) 
res = df[arr] 
print (res) 
    a b c 
0 1 2 3 
2 3 4 5 
関連する問題