[英]Filter Pandas dataframe with another series
我有Pandas系列,我們稱之為approved_fields,我想用它來過濾df:
approved_field(['Field1','Field2','Field3')]
df
Field
0 Field1
1 Field4
2 Field2
3 Field5
4 Field2
應用approved_field過濾器后,生成的df應如下所示:
Field
0 Field1
1 Field2
2 Field2
謝謝!
您可以使用isin
和boolean索引:
>>> 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
請注意,您預期的解決方案中的索引已關閉
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.