假设我有以下df:
year date_until
1 2010 -
2 2011 30.06.13
3 2011 NaN
4 2015 30.06.18
5 2020 -
我想用30/06/{year +1}填充date_until
列中的所有-
和NaN
。我尝试了以下方法,但它使用了整个year列,而不是特定行的相应值:
df['date_until] = df['date_until].str.replace('-', f'30/06/{df["year"]+1}')
我的最终目标是计算年份和date_until的年份之间的差,因此上面的步骤可能甚至是不必要的。
2条答案
按热度按时间bttbmeg01#
我们可以在这里使用
pd.to_datetime
和errors='coerce'
来忽略错误的日期,然后使用dt.year
来计算差值:第一个
7nbnzgx92#
对于那些试图取代价值观的人,就像我一开始想做的那样,下面是你可以解决这个问题的方法:
但@二凡的做法干净多了