如何用Pandas按指定条件删除DataFrame行(保留含NaN行)
Pandas: 删除指定条件的行
初始DataFrame
import pandas as pd; import numpy as np; df = {'id': [1, 2, 3, 4, 5, 6], 'created_at': ['2020-02-01', '2020-02-02', '2020-02-02', '2020-02-02', '2020-02-03','2020-02-02'], 'type': ['red', np.nan, np.nan, 'blue', 'yellow', np.nan]} df = pd.DataFrame(df, columns=['id', 'created_at','type'])
需求
删除同时满足created_at='2020-02-02'且id为2或6的行(注:原需求日期描述疑似笔误,结合期望输出调整),保留其余所有行(包含含NaN值的行)。
解决代码
# 定义需要删除的行的条件 mask = (df['created_at'] == '2020-02-02') & df['id'].isin([2, 6]) # 筛选保留不符合删除条件的行 result_df = df[~mask]
输出结果
| id | created_at | type |
|---|---|---|
| 1 | 2020-02-01 | red |
| 3 | 2020-02-02 | NaN |
| 4 | 2020-02-02 | blue |
| 5 | 2020-02-03 | yellow |
内容的提问来源于stack exchange,提问作者bengisu yilmaz
相关产品推荐
相关产品推荐

