首页 > 解决方案 > 如何删除熊猫数据框中的某些行值(不为空)

问题描述

所以我得到了一个物联网数据集,我想根据“值”列值删除某些行(它们不是空值)。例如 -

PFA 数据集截图

所以基本上我想删除“值”列中所有具有“数据丢失”的行。该数据集中有 50k+ 条记录,我尝试了以下方法,但没有成功

df2 = df1[(df1['Value']!='Data Lost')]
df2 = df1[(df1['Value']!='I/O TimeOut')]

非常感谢任何帮助!

标签: pythonpandasdataframe

解决方案


假设您的 df 看起来像:

   ID         Col1       date       Value
0  18     Gas Flow 2019-02-03         64↓
1  19  Temperature 2019-02-03         73↓
2  20          No2 2019-02-03     Medium↓
3  21          RPM 2019-02-03       1006↓
4  22    Vibration 2019-02-03         72↓
5  23          No2 2019-02-03  Data Lost↓
6  24     Gas Flow 2019-02-03         69↓

你可以这样做series.str.contains()

df1=df[~df.Value.str.contains('Data Lost',case=False,na=False)]
print(df1)

   ID         Col1       date    Value
0  18     Gas Flow 2019-02-03      64↓
1  19  Temperature 2019-02-03      73↓
2  20          No2 2019-02-03  Medium↓
3  21          RPM 2019-02-03    1006↓
4  22    Vibration 2019-02-03      72↓
6  24     Gas Flow 2019-02-03      69↓

注意:case=False 如果您希望搜索不区分大小写,请使用,na=False如果您NaN在列中也使用。


推荐阅读