首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要用逻辑替换timeseries数据帧的Nan值

需要用逻辑替换timeseries数据帧的Nan值
EN

Stack Overflow用户
提问于 2022-08-12 19:21:42
回答 1查看 48关注 0票数 -1
代码语言:javascript
复制
df = pd.DataFrame({'date': ['3/10/2000', '3/11/2000', '3/12/2000','3/13/2000','3/14/2000','3/15/2000','3/16/2000','3/17/2000','3/18/2000'],
                   'value': [2,NaN,NaN,NaN,NaN,NaN,NaN,NaN,25]})

在这个dataframe中,我想用下面的逻辑来替换Nan值:在这种情况下,两个日期之间在值列不为Nan的天数上的差值是8天,即3/18/2000 - 3/10/2000 =8天。让我们假设δ= 23,我们从减去25-2中得到。我想将所有其他t天的non值替换为2+(delta)*(t/8),其中t是任意一天,在给定的两个非Nan值之间有一个nan值,我想要的值列的结果是:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-12 19:54:13

您可以将日期设置为timedelta,然后使用' index‘方法作为索引和interpolate

代码语言:javascript
复制
df['value'] = (df
 .assign(date=pd.to_datetime(df['date']))
 .set_index('date')['value']
 .interpolate('index')
 .values
)

产出:

代码语言:javascript
复制
        date   value
0  3/10/2000   2.000
1  3/11/2000   4.875
2  3/12/2000   7.750
3  3/13/2000  10.625
4  3/14/2000  13.500
5  3/15/2000  16.375
6  3/16/2000  19.250
7  3/17/2000  22.125
8  3/18/2000  25.000
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73338853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档