2017-08-10 4 views
1

私はパンダのチュートリアルを働いている、と私はのようなコードを見ている:私は、この操作が何であるか思ったんだけど、どのようにそれはPythonで実装されていますパンダのデータフレームレコードフィルタリング表記はどのように実装されていますか?

from pandas import read_csv 
dataset = read_csv('customers.csv') 

# remove customers older than 95 
dataset = dataset[dataset.age < 95] 

?これは、データフレームがdict notation(dataset['age'])と同様にこの記法を受け入れることができるように見えます。

答えて

1

基本的に、dataset.age < 95datasetのインデックスを持つSeriesを生成し、値が< 95と比較して、そのインデックスに関連付けられた値の結果であろう。この結果を使用してデータフレーム内の何かを選択すると、シリーズ内のインデックスの値がTrueの行が返されます。例えば

In [1]: df = pd.DataFrame({'a': list(range(5)), 'b': list(range(5, 10))}) 

In [2]: df 
Out[2]: 
    a b 
0 0 5 
1 1 6 
2 2 7 
3 3 8 
4 4 9 

In [3]: type(df.a < 3) 
Out[3]: pandas.core.series.Series 

In [4]: df.a < 3 
Out[4]: 
0  True 
1  True 
2  True 
3 False 
4 False 
Name: a, dtype: bool 

の両方の表記df.column_namedf['column_name']が有効と同等であるが、使用することができない、例えば、その場合のdf.column namedf['column name']を使用します。一般にdf.column_namecolumn_nameが有効な識別子であり、type(df)のために定義されたメソッドまたはフィールドと同じ名前を持たない場合に使用できます。

関連する問題