在单独的Dataframe中按列内容对Dataframe进行子集设置-Python 3

在单独的Dataframe中按列内容对Dataframe进行子集设置-Python 3,python,pandas,subset,Python,Pandas,Subset,如何使用另一个dataframes列的内容子集dataframe df1 = pd.DataFrame({"0": ['one', 'two', 'three', 'four'], "Index": [1, 2, 3, 4]}) df2 = pd.DataFrame({"0": ['two', 'two', 'three', 'three']}) a = [i for i in df1['0'] if i in df2['0']] 结果 print(a) [] 期望输出: 版画 如

如何使用另一个dataframes列的内容子集dataframe

df1 = pd.DataFrame({"0": ['one', 'two', 'three', 'four'], "Index": [1, 2, 3, 4]})
df2 = pd.DataFrame({"0": ['two', 'two', 'three', 'three']})

a = [i for i in df1['0'] if i in df2['0']]
结果

print(a)    
[]
期望输出: 版画


如果您真的想保持这种奇怪的不必要的列表理解,您需要传递s.values:

但要直接获得您的输入暗示您想要的内容,只需选择df1中的条目,其中0列值位于df2的0列值中:

>>> df1[df1['0'].isin(df2['0'])]
       0  Index
1    two      2
2  three      3

您也可以重置索引,调用df_name.reset_indexdrop=True。

df1.mergedf2.drop_duplicates?您想做什么?是否保留df1中0与df2相同的行?
>>> [i for i in df1['0'].values if i in df2['0'].values]
['two', 'three']
>>> df1[df1['0'].isin(df2['0'])]
       0  Index
1    two      2
2  three      3