Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.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_Filter - Fatal编程技术网

python筛选出的行不起作用

python筛选出的行不起作用,python,pandas,filter,Python,Pandas,Filter,我想通过一个名为'mid'的列来过滤数据帧,只保留那些字段'mid'在特定范围内的行 我的代码如下: df_org是一个结构为['uid'、'mid'、'cv1'、'cv2'、'cv3']的数据框架,series\u moviesID是一个包含我想要用来过滤df_org数据框架的所有值的熊猫系列 filterOut(self, df_org, series_movieID, colName='mid'): mask=((df_org[colName]).isin(series_movie

我想通过一个名为
'mid'
的列来过滤数据帧,只保留那些字段
'mid'
在特定范围内的行

我的代码如下:

df_org
是一个结构为
['uid'、'mid'、'cv1'、'cv2'、'cv3']
的数据框架,
series\u moviesID
是一个包含我想要用来过滤
df_org
数据框架的所有值的熊猫系列

filterOut(self, df_org, series_movieID, colName='mid'):
    mask=((df_org[colName]).isin(series_movieID))
    df_filterOut = df_org[mask]
    assert set(df_filterOut['mid']).issubset(set(series_movieID))
    return df_filterOut.reset_index().drop(labels='index', axis=1)

但是断言表达式无法通过,有人知道潜在的错误吗?

嗯。您的代码对我有效。还尝试了s、df和两者中的DUPS,然后运行。你还可以分享更多的细节吗

In [2]: s = pd.Series(range(4), index=['a', 'b', 'c', 'd'])

In [3]: df = pd.DataFrame({'a': range(10), 'b': range(10, 20)}, index=range(20, 30))

In [4]:

In [4]: print s
a    0
b    1
c    2
d    3
dtype: int64

In [5]: print df
    a   b
20  0  10
21  1  11
22  2  12
23  3  13
24  4  14
25  5  15
26  6  16
27  7  17
28  8  18
29  9  19

In [6]: def filterOut(df_org, series_movieID, colName='mid'):
   ...:         mask=((df_org[colName]).isin(series_movieID))
   ...:         df_filterOut = df_org[mask]
   ...:         assert set(df_filterOut[colName]).issubset(set(series_movieID))
   ...:         return df_filterOut.reset_index().drop(labels='index', axis=1)
   ...:

In [7]: filterOut(df, s, colName='a')
Out[7]:
   a   b
0  0  10
1  1  11
2  2  12
3  3  13

如果您提供一些示例数据(例如5行)以及预期结果,这将非常有用。