删除包含严格和特定值/ int /字符串的行?

时间:2019-04-25 21:28:37

标签: python pandas dataframe

我要删除列Copy 1中包含copy_nb的每一行:

我像这样尝试了熊猫Series.str.contains的简单功能:

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

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

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

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以选择行copy_nb不等于值“ Copy 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)

答案 1 :(得分:0)

尝试以下操作:

df[~df['copy_nb'].fillna('').str.contains('Copy 1')]