要比较两个pandas列,并从列1中删除出现在列2中的标记,可以使用pandas的isin()函数和布尔索引。
以下是一个示例代码:
import pandas as pd
# 创建示例数据
data = {'col1': ['A', 'B', 'C', 'D', 'E'],
'col2': ['B', 'D', 'F']}
df = pd.DataFrame(data)
# 使用isin()函数比较两列
mask = df['col1'].isin(df['col2'])
# 使用布尔索引删除标记
df = df[~mask]
print(df)
输出结果:
col1 col2
0 A B
2 C F
4 E NaN
在上面的代码中,我们首先使用isin()函数比较'col1'列中的每个元素是否出现在'col2'列中。然后,将返回的布尔值创建为一个掩码(mask)。
接下来,我们使用布尔索引~mask
将标记为True的行从DataFrame中删除。
最后,我们打印删除标记后的DataFrame。注意,删除后的DataFrame索引不会自动重置,所以在实际应用中可能需要使用reset_index()函数来重新设置索引。