如何在Pandas DataFrame中删除日期匹配行并修改指定列值
实现方案
首先需要确保date和rating_date列为datetime类型,避免字符串格式下的比较误差,完整操作代码如下:
步骤1:导入依赖+构造/读取数据+类型转换
import pandas as pd # 构造示例数据,如果你已经有df可以跳过这一步 data = { "id": [1,2,3,4,5], "date": ["1993-05-20", "1987-03-12", "1994-01-19", "2004-08-03", "2005-10-12"], "rating_date": ["1993-05-20", "1988-03-12", "1994-10-19", "2004-09-17", "2005-10-12"], "rating": [3,4,3,2,2] } df = pd.DataFrame(data) # 转换两列为datetime格式 df["date"] = pd.to_datetime(df["date"]) df["rating_date"] = pd.to_datetime(df["rating_date"])
步骤2:执行需求操作
# 1. 过滤删除date和rating_date值相等的行 df = df[df["date"] != df["rating_date"]] # 2. 把rating_date大于date的行的rating改为NR # 如果你确认过滤后剩余所有行都是rating_date>date,直接写df['rating'] = 'NR'即可 # 更严谨的写法(避免存在rating_date<date的异常数据被误改): df.loc[df["rating_date"] > df["date"], "rating"] = "NR"
输出结果
执行完成后打印df即可得到目标结果:
id date rating_date rating 1 2 1987-03-12 1988-03-12 NR 2 3 1994-01-19 1994-10-19 NR 3 4 2004-08-03 2004-09-17 NR
内容的提问来源于stack exchange,提问作者oceanbeach96
相关产品推荐
相关产品推荐

