繁体   English   中英

用另一个列值填充缺失的日期

[英]Fill missing dates with another column value

我一直在尝试做一些我认为很简单的事情,但我遇到了一个我不理解的问题。 我有两列: date_publisheddate_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM