我正在尝试填充数据帧中缺少的时间。当我重新建立索引时,丢失的时间会被填充,但我的原始值会消失,所有内容都会变成一个NaN。我的代码如下:
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
num
date
2010-03-01 00:03:00 1
2010-03-01 00:05:00 2df_test2
num
2010-03-01 00:03:00 NaN
2010-03-01 00:04:00 NaN
2010-03-01 00:05:00 NaN发布于 2020-03-17 22:03:48
这里有必要将转换后的列重新分配给datetimes,因为to_datetime不能就地工作:
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)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的解决方案
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 2https://stackoverflow.com/questions/60723898
复制相似问题