7

私は承認された_フィールドと呼ぶパンダシリーズを持っています。これを使用してdfをフィルタリングします:

approved_field(['Field1','Field2','Field3')]

df
    Field
0   Field1
1   Field4
2   Field2
3   Field5
4   Field2

approval_field フィルターを適用すると、結果の df は次のようになります。

    Field
0   Field1
1   Field2
2   Field2

ありがとう!

4

2 に答える 2

16

isinブール値のインデックス付けを使用できます。

>>> import pandas as pd
>>> df = pd.DataFrame({"Field": "Field1 Field4 Field2 Field5 Field2".split()})
>>> approved_fields = "Field1", "Field2", "Field3"
>>> df['Field'].isin(approved_fields)
0     True
1    False
2     True
3    False
4     True
Name: Field, dtype: bool
>>> df[df['Field'].isin(approved_fields)]
    Field
0  Field1
2  Field2
4  Field2
于 2013-06-11T14:44:27.597 に答える
3

予想されるソリューションのインデックスがオフになっていることに注意してください

In [16]: approved_field = ['Field1','Field2','Field3']

In [17]: df = DataFrame(dict(Field = ['Field1','Field4','Field2','Field5','Field2']))

In [18]: df
Out[18]: 
    Field
0  Field1
1  Field4
2  Field2
3  Field5
4  Field2

In [19]: df[df.Field.isin(approved_field)]
Out[19]: 
    Field
0  Field1
2  Field2
4  Field2
于 2013-06-11T14:46:57.653 に答える