我在数据框中有三列:开始日期,年龄和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列的空单元格上如何执行此操作? 有什么简单的方法吗?
感谢和问候
答案 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