在单独的Dataframe中按列内容对Dataframe进行子集设置-Python 3
如何使用另一个dataframes列的内容子集dataframe在单独的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) [] 期望输出: 版画 如
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