首页 > 解决方案 > 删除包含严格和特定值/int/字符串的行?

问题描述

我想删除Copy 1column 中包含的每一行copy_nb

我尝试了 pandas 简单易用的功能,Series.str.contains如下所示:

df=df[~df.copy_nb.str.contains("Copy 1", na=False)]

不幸的是,它正在删除包含Copy 1,Copy 10以及 ,Copy 11等的列。

这是我要清理的数据框示例:

在此处输入图像描述

标签: pythonpandasdataframe

解决方案


您可以选择列 copy_nb 不等于值“复制 1”的行,如下例所示:

import numpy as np
import pandas as pd

df = pd.DataFrame({
    "copy_nb": [np.nan, np.nan, "Copy 1", "Copy 2"],
    "other_column": [1, 2, 3, 4]
})

print(df)

df_copy1_removed = df.loc[df.copy_nb != "Copy 1", :]  # Here the selection happens

print(df_copy1_removed)

推荐阅读