Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过内省行中的每个元素筛选数据帧_Python_Pandas_Filtering_Series - Fatal编程技术网

Python 通过内省行中的每个元素筛选数据帧

Python 通过内省行中的每个元素筛选数据帧,python,pandas,filtering,series,Python,Pandas,Filtering,Series,我有一个数据框,它在列中包含一个对象 例如: df['id_original'].iloc[0].Class Out[20]: u'Classtype1' df['id_original'].iloc[1].Class Out[20]: u'Classtype2' 如何过滤数据帧,使我只获取“id_original”行包含属性类为Classtype1的对象的行。甚至更好。与.isin(允许的\u类\u类型\u列表)结合使用 是否有任何方法可以使用.isin实现这一点,或者我必须使用ItErr

我有一个数据框,它在列中包含一个对象

例如:

df['id_original'].iloc[0].Class
Out[20]: u'Classtype1'

df['id_original'].iloc[1].Class
Out[20]: u'Classtype2'
如何过滤数据帧,使我只获取“id_original”行包含属性类为Classtype1的对象的行。甚至更好。与
.isin(允许的\u类\u类型\u列表)
结合使用


是否有任何方法可以使用.isin实现这一点,或者我必须使用ItErrors迭代所有行?最好是一个优雅的单线解决方案。

为什么不尝试
apply
获取一系列真/假,并将其用作数据帧上的掩码

mask = df['id_original'].apply(lambda x: x.Class in allowed_class_list)
df.loc[mask]
相同的逻辑位清理器

mask = df['id_original'].apply(lambda x: x.Class).isin(allowed_class_list)
df.loc[mask]
您可以使用:

df.loc[df['id_original'].apply(lambda x: x.Class in allowed_class_type_list)]
考虑以下简化示例:

class Example:
    def __init__(self, class_):
        self.Class = class_

ex1 = Example('class1')
ex2 = Example('class2')
ex3 = Example('class3')
ex4 = Example('class4')

df = pd.DataFrame({
    'id_original':[ex1, ex2, ex2, ex1, ex4, ex3, ex3, ex4]
})

allowed_class_type_list = ['class1', 'class4']
您可以使用以下方法进行筛选:

df.loc[df['id_original'].apply(lambda x: x.Class in allowed_class_type_list)]
输出:

                   id_original
0   <__main__.Example object at 0x000000000A597390>
3   <__main__.Example object at 0x000000000A597390>
4   <__main__.Example object at 0x000000000A597B00>
7   <__main__.Example object at 0x000000000A597B00>
id\u原件
0
3.
4.
7.

它们是字符串吗?这就是你想要的吗?