[英]Fill missing dates with another column value
我一直在尝试做一些我认为很简单的事情,但我遇到了一个我不理解的问题。 我有两列: date_published
和date_obtained
,当然,我有date_obtained
所有数据,但没有date_published
。 我的方法是用减 1 天获得的日期填充缺失的date_published
(也可能是中位数差异,但我会忽略它)。
df 看起来像这样:
date_published date_obtained
2017-12-20 2017-12-22
NaT 2017-12-23
之后应该是这样的:
date_published date_obtained
2017-12-20 2017-12-22
2017-12-22 2017-12-23
我尝试了以下方法:
date_delta=(Df.date_obtained-datetime.timedelta(days=1))
Df.loc['date_published']=Df.date_published.fillna((date_delta))
但是,令我惊讶的是,这并没有填充任何NaT
,并且还在我的所有数据框中创建了一个缺失值。 还尝试只填充Df.date_obtained
,但结果是一样的。 我错过了什么?
你快到了,你应该做:
u = df.date_obtained - pd.Timedelta(days=1)
df['date_published'] = df.date_published.fillna(u)
或者,
df.loc[:, 'date_published'] = df.date_published.fillna(u)
使用loc
来引用列(否则,它将尝试检查您传递的标签的索引)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.