Python 比较DataFrame中的两个日期列以验证第三列

Python 比较DataFrame中的两个日期列以验证第三列,python,pandas,numpy,dataframe,fuzzy-logic,Python,Pandas,Numpy,Dataframe,Fuzzy Logic,背景信息 我正在开发一个数据框架,在这个数据框架中,我使用fuzzymatcher成功地加入了两个不同的足球运动员数据集。这些数据集没有用于精确匹配的键,而是必须按其名称进行匹配。下面是两个数据库中要合并为一个数据库的名称列的匹配示例 long_name name L. Messi Lionel Andrés Messi Cuccittini 作为18000行数据库验证过程的一部分,我想检查合并数据框-df中的两个出生日期列,确保这些列匹配,如下面的示例所示 dob

背景信息
我正在开发一个数据框架,在这个数据框架中,我使用fuzzymatcher成功地加入了两个不同的足球运动员数据集。这些数据集没有用于精确匹配的键,而是必须按其名称进行匹配。下面是两个数据库中要合并为一个数据库的名称列的匹配示例

long_name       name
L. Messi        Lionel Andrés Messi Cuccittini
作为18000行数据库验证过程的一部分,我想检查合并数据框-
df
中的两个出生日期列,确保这些列匹配,如下面的示例所示

dob             birth_date
1987-06-24      1987-06-24
已使用
pd.to_datetime()
将两个日期列从字符串转换为日期,例如

df['birth\u date']=pd.to\u datetime(df['birth\u date'])

我的问题
在我的查询中,我有另一列名为“value”。我想更新我的pandas DataFrame,这样,如果两个日期列匹配,条目将保持不变。但是,如果两个日期列不匹配,我希望将此值列中的数据更改为null。这是我可以很容易地在Excel中通过日期差异计算完成的,但我不确定是否使用熊猫

我当前的代码如下:

df.loc[(df['birth_date']!=df['dob']),'value']=np.nan

此步骤的原因(请随意跳过)
这段代码的原因是,它将快速向我显示不准确的模糊匹配(约占数据库总数的10%),并允许我快速修复这些模糊匹配

理想情况下,我还需要对匹配算法进行研究,以确保完美的日期匹配,然而,我当前的算法在当前状态下运行得相当好,项目几乎完成。如果你对此有所了解,我很乐意听到任何建议

非常感谢

IICU: 请尝试
np.where
。 作品如下:

np.where(if condition, assign x, else assign y)
如果条件
=df.loc[(df['birth_date']!=df['dob'],
x
=np.nan和
y
=现行df值

df['value']= np.where(df.loc[(df['birth_date'] != df['dob']),'value'], np.nan, df['value'])

是的,这看起来是正确的。我在看pandas解决方案,而不是NumPy。它对我仍然不起作用,因为我有一个有趣的错误:操作数不能与形状(4495,()(18278,)’一起广播。需要弄清它的底细,但感谢你帮助我回答我的问题!以下操作有效:df['value']=np.where((df['dob'!=df['birth_date']),np.nan,df['value'])非常感谢!