python - 根据上一个日期将“NaT”替换为下一个日期
问题描述
我的 DF 如下所示:
column1 column2
2020-11-01 1
2020-12-01 2
2021-01-01 3
NaT 4
NaT 5
NaT 6
输出应该是这样的:
column1 column2
2020-11-01 1
2020-12-01 2
2021-01-01 3
2021-02-01 4
2021-03-01 5
2021-04-01 6
我无法根据 df 中的最后一个现有日期创建下一个日期(仅更改月份和年份)。有什么pythonic方法可以做到这一点吗?谢谢你的帮助!
问候托马斯
解决方案
我就是这样做的,您可能可以将其整理成更多的一个衬里,但这将有助于更多地说明该过程。
#convert to date
df['column1'] = pd.to_datetime(df['column1'], format='%Y-%d-%m')
#create a group for each missing section
df['temp'] = df.column1.fillna(method = 'ffill')
#count the row within this group
df['temp2'] = df.groupby(['temp']).cumcount()
# add month
df['column1'] = [x + pd.DateOffset(months=y) for x,y in zip(df['temp'], df['temp2'])]
推荐阅读
- java - using comparable in java for Bubble up in MaxHeap
- html - 上传到 Ghpages 的 Mp3 文件无法播放。我曾尝试使用 rawgit 来托管文件和 githubusercontent,但它仍然无法正常工作?
- angular - RxJs 循环遍历返回的数组
- angular - Typescript - Check if image src has been fetched and call a function
- android - EditText format masks don't appear the % symbol
- javascript - Python烧瓶在javascript文件中使用config.py中的变量
- javascript - 在 HTML5 画布中创建带有棋子的棋盘
- git - 如何在 git repo 中有一个不会从一个分支更改到另一个分支的跟踪文件
- list - List.init (F#) 的第二个参数需要说明
- ios - 我应该在 maximumFractionDigits 中设置什么以最大程度地减少数据丢失?