Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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 DataFrame—根据另一个数据帧中的值选择数据帧行_Python_Pandas_Dataframe - Fatal编程技术网

Python DataFrame—根据另一个数据帧中的值选择数据帧行

Python DataFrame—根据另一个数据帧中的值选择数据帧行,python,pandas,dataframe,Python,Pandas,Dataframe,我正在努力解决与数据帧相关的问题。有两个数据帧,df和dff,如下所示 data = np.array([['', 'col1', 'col2'], ['row1', 1, 2], ['row2', 3, 4]]) df = pd.DataFrame(data=data[1:,1:].astype(int), index=data[1:,0],columns=data[0,1:]) filters=np.array([['', 'col1',

我正在努力解决与数据帧相关的问题。有两个数据帧,df和dff,如下所示

data = np.array([['', 'col1', 'col2'],
            ['row1', 1, 2],
            ['row2', 3, 4]])
df = pd.DataFrame(data=data[1:,1:].astype(int), index=data[1:,0],columns=data[0,1:])


filters=np.array([['', 'col1', 'col2'],
                 ['row1', 1, 1],
                 ['row2', 1, 2],
                 ['row3', 3, 2]])
dff = pd.DataFrame(data=filters[1:,1:].astype(int), index=filters[1:,0],columns=filters[0,1:])
我希望从df中选择行,以便它们的col2值属于可以在dff中找到的具有匹配col1值的值列表。 例如,对于col1值等于1,该列表应为[1,2],对于col1值等于2,该列表为[2]

我解决这个问题的最好办法是

df1 = df[df['col2'].isin(dff[dff['col1']==df['col1']]['col2'])]
但这会导致

ValueError: Can only compare identically-labeled Series objects

任何帮助都将不胜感激。非常感谢。

据我所知,您只需

并过滤
col1
中不在
df

ndf[ndf.col1.isin(df.col1)]

非常感谢,这就是我需要的,我也学到了一些新的东西。
ndf[ndf.col1.isin(df.col1)]