首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python:如果两个列没有出现在另一个Pandas列中,如何在pandas中删除行?

在Pandas中,可以使用isin()函数和布尔索引来删除没有出现在另一个列中的行。

假设我们有一个名为df的DataFrame,其中包含三列:col1col2col3。我们想要删除col1col2中的值没有出现在col3中的行。

以下是实现这个目标的步骤:

  1. 使用isin()函数创建一个布尔索引,判断col1col2中的值是否在col3中出现。例如,df['col1'].isin(df['col3'])将返回一个布尔Series,表示col1中的值是否在col3中出现。
  2. 使用逻辑运算符&将两个布尔Series组合起来,以确定哪些行同时满足col1col2的值没有出现在col3中。例如,df['col1'].isin(df['col3']) & df['col2'].isin(df['col3'])将返回一个布尔Series,表示同时满足条件的行。
  3. 使用布尔索引来选择需要保留的行,即满足条件的行。例如,df = df[df['col1'].isin(df['col3']) & df['col2'].isin(df['col3'])]将删除不满足条件的行,并将结果重新赋值给df

以下是完整的代码示例:

代码语言:python
代码运行次数:0
复制
import pandas as pd

# 创建示例DataFrame
data = {'col1': [1, 2, 3, 4, 5],
        'col2': [6, 7, 8, 9, 10],
        'col3': [1, 2, 3, 11, 12]}
df = pd.DataFrame(data)

# 删除没有出现在col3中的行
df = df[df['col1'].isin(df['col3']) & df['col2'].isin(df['col3'])]

# 打印结果
print(df)

输出结果为:

代码语言:txt
复制
   col1  col2  col3
0     1     6     1
1     2     7     2
2     3     8     3

在这个例子中,只有前三行满足条件,因为它们的col1col2的值都在col3中出现。因此,第四行和第五行被删除了。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券