根据年龄和日期列查找近似DOB

时间:2020-05-27 12:44:28

标签: python

我在数据框中有三列:开始日期,年龄和DOB。 但是缺少一些DOB信息,而没有start_date和age。我希望使用以下公式来估算DOB列的空单元格,使其具有近似的DOB:

数据框示例:

start_date  |  age   |  DOB

3/1/2017      87          11/1/1930

9/13/2017     31

7/26/2017     60

7/26/2017     52

4/1/2017      37          12/14/1979

我的问题是仅在数据帧的DOB列的空单元格上如何执行此操作? 有什么简单的方法吗?

感谢和问候

1 个答案:

答案 0 :(得分:0)

这是一种实现方法:

df.DOB = pd.to_datetime(df.DOB)

estimated_dob = pd.to_datetime(df.start_date) - pd.to_timedelta(df.age, unit='y') 
df.loc[df.DOB.isna(), "DOB"] = estimated_dob[df.DOB.isna()]

#to remove the time part of the timestamp: 

df["DOB"] = df["DOB"].dt.date

结果是:

  start_date  age         DOB
0   3/1/2017   87  1930-11-01
1  9/13/2017   31  1986-09-13
2  7/26/2017   60  1957-07-26
3  7/26/2017   52  1965-07-26
4   4/1/2017   37  1979-12-14