python-将索引从rangeindex转换为datetime索引错误
发布时间:2022-06-07 23:33:16 380
相关标签: # node.js
我有这样一个数据框:
date P1 P2 P3 P4 ...
2014-01-03 2 4 9 8
...
它是一个每日时间序列数据。我想把它汇总到每月一次的水平。我需要注意的是,之前,它有一些缺失的日子,所以我用reindex
.
当我尝试使用resample
,我得到以下信息error
:TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex'
即使我将索引转换为DatetimeIndex
.
这是我的代码:
ts_data = ts_data.set_index("Date")
ts_data.index = pd.DatetimeIndex(ts_data.index)
ts_data_w = ts_data.reindex(pd.date_range("2014-01-03", "2017-12-30"))
ts_data_w.index = pd.DatetimeIndex(ts_data_w.index)
ts_data_w.index.name = "Order_Date"
# Filling missing values with KNN
imputer_knn = KNNImputer(n_neighbors=5, weights='uniform', metric='nan_euclidean')
ts_data_d = pd.DataFrame(imputer_knn.fit_transform(ts_data_w), columns=ts_data_w.columns)
# ts_data_d#.isnull().values.any()
# Month level aggregation
dicti = {c: "sum" for i, c in enumerate(ts_data_d.columns)}
ts_data_m = ts_data_d.resample('M').agg(dicti)
ts_data_m
这个dicti
只是为了让列sum
用于聚合。这是错误行ts_data_m = ts_data_d.resample('M').agg(dicti)
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报