Python 如何根据值是否存在于另一个数据帧中,从数据帧中删除这些值?

Python 如何根据值是否存在于另一个数据帧中,从数据帧中删除这些值?,python,pandas,Python,Pandas,我有两个数据帧,第一个包含我希望使用的值列表,第二个包含这些值加上大量其他值。我正在寻找从第2个数据帧中删除第1个数据帧中未出现的值的最佳方法,以减少我正在处理的条目数 范例 输入 DF1 阿尔法 代码 A. 1. D 2. E 3. F 4. 假设DF1中的第一列名为“Alpha”,则可以执行以下操作: my_list_DF1 = DF1['Alpha'].unique().tolist() # gets all unique values of first column from DF1 i

我有两个数据帧,第一个包含我希望使用的值列表,第二个包含这些值加上大量其他值。我正在寻找从第2个数据帧中删除第1个数据帧中未出现的值的最佳方法,以减少我正在处理的条目数

范例

输入

DF1

阿尔法 代码 A. 1. D 2. E 3. F 4.
假设DF1中的第一列名为“Alpha”,则可以执行以下操作:

my_list_DF1 = DF1['Alpha'].unique().tolist() # gets all unique values of first column from DF1 into a list
然后,您可以使用
isin
过滤DF2,以仅包含这些值:

new_DF2 = DF2[DF2['Alpha'].isin(my_list_DF1)]

这将导致较小的DF2,只包括所谓的“Alpha”列中的公共值。

您可以进行内部联接,删除所有没有条目的行并合并所有其他行:

pd.merge(DF1, DF2, on='Alpha', how='inner')
但随后您将不得不删除不需要的列,如果某些列共享名称,则可能需要重命名