首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Reindex将值替换为NaN

Reindex将值替换为NaN
EN

Stack Overflow用户
提问于 2020-03-17 22:00:31
回答 1查看 50关注 0票数 1

我正在尝试填充数据帧中缺少的时间。当我重新建立索引时,丢失的时间会被填充,但我的原始值会消失,所有内容都会变成一个NaN。我的代码如下:

代码语言:javascript
复制
data = {'date':["2010-03-01 00:03:00","2010-03-01 00:05:00"], 'num':["1","2"]}
df_test = pd.DataFrame(data,columns = ['date','num'])
pd.to_datetime(df_test['date'], format='%Y-%m-%d %H:%M:%S')
df_test.set_index('date', inplace=True)
df_test2 = df_test.reindex(pd.date_range(df_test.index[0], df_test.index[-1], freq='Min')) 

df_test

代码语言:javascript
复制
                       num
date    
2010-03-01 00:03:00     1
2010-03-01 00:05:00     2

df_test2

代码语言:javascript
复制
                        num
2010-03-01 00:03:00     NaN
2010-03-01 00:04:00     NaN
2010-03-01 00:05:00     NaN
EN

回答 1

Stack Overflow用户

发布于 2020-03-17 22:03:48

这里有必要将转换后的列重新分配给datetimes,因为to_datetime不能就地工作:

代码语言:javascript
复制
data = {'date':["2010-03-01 00:03:00","2010-03-01 00:05:00"], 'num':["1","2"]}
df_test = pd.DataFrame(data,columns = ['date','num'])
df_test['date'] = pd.to_datetime(df_test['date'], format='%Y-%m-%d %H:%M:%S')
df_test.set_index('date', inplace=True)

代码语言:javascript
复制
df_test2 = df_test.reindex(pd.date_range(df_test.index[0], df_test.index[-1], freq='Min')) 

print (df_test2)

2010-03-01 00:03:00    1
2010-03-01 00:04:00  NaN
2010-03-01 00:05:00    2

另一种使用DataFrame.asfreq的解决方案

代码语言:javascript
复制
df_test2 = df_test.asfreq('Min')
print (df_test2)
                     num
date                    
2010-03-01 00:03:00    1
2010-03-01 00:04:00  NaN
2010-03-01 00:05:00    2
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60723898

复制
相关文章

相似问题

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