我有一组数据框,它们代表我放入字典中的需求情景。我需要遍历字典中的每个数据框以重新索引和重新采样等,然后返回字典。当我遍历数据帧列表时,下面的代码可以完美地工作,但是我需要维护每个场景的身份,因此需要字典。
这是与数据帧列表配合使用的代码:
demand_scenarios = {'low': low_demand_df, 'medium_low': med_low_demand_df, 'medium': bc_demand_df, 'medium_high': med_high_demand_df, 'high': high_demand_df}
dates = pd.date_range(start='2020-10-01', end='2070-09-30', freq='D')
demand_dict = {}
for df in demand_scenarios:
[df].index = pd.to_datetime([df].index, format='%Y')
[df] = [df].tshift(-92, 'D')
[df] = [df].resample('D').ffill()
[df] = [df].reindex(dates)
demand_dict[df] = df
这是我尝试的字典形式:
demand_xarray = xr.Dataset(demand_dict, coords = {'customers': customers, 'time': dates})
关注问题 我使用以下命令将上面的demand_dict字典传递到xarray中:
<xarray.Dataset>
Dimensions: (customers: 28, dim_0: 18262, dim_1: 28, time: 18262)
Coordinates:
* dim_0 (dim_0) datetime64[ns] 2020-10-01 2020-10-02 ... 2070-09-30
* dim_1 (dim_1) object 'Customer_1' ... 'Customer_x'
* customers (customers) <U29 'Customer_1' ... 'Customer_x'
* time (time) datetime64[ns] 2020-10-01 2020-10-02 ... 2070-09-30
Data variables:
low (dim_0, dim_1) float64 0.52 0.528 3.704 ... 7.744 0.92 64.47
medium_low (dim_0, dim_1) float64 0.585 0.594 4.167 ... 8.712 1.035 72.53
medium (dim_0, dim_1) float64 0.65 0.66 4.63 12.6 ... 9.68 1.15 80.59
medium_high (dim_0, dim_1) float64 0.715 0.726 5.093 ... 10.65 1.265 88.65
high (dim_0, dim_1) float64 0.78 0.792 5.556 ... 11.62 1.38 96.71
但是我的数据集如下所示:
demand_xarray = xr.Dataset(demand_dict, coords = {'customers': customers, 'time': dates}).drop_dims(dim_0, dim_1)
当我尝试像这样使用drop_dims函数时:
AttributeError: 'Dataset' object has no attribute 'drop_dims'
我得到了错误:
const UserSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
createdAt: {
type: Date,
default: Date.now
}
});
mongoose.model('User', UserSchema);
知道为什么我会收到此错误吗?
答案 0 :(得分:0)
demand_scenarios = {'low': low_demand_df, 'medium_low': med_low_demand_df, 'medium': bc_demand_df, 'medium_high': med_high_demand_df, 'high': high_demand_df}
dates = pd.date_range(start='2020-10-01', end='2070-09-30', freq='D')
demand_dict = {}
for key, df in demand_scenarios.items():
df.index = pd.to_datetime([df].index, format='%Y')
df = df.tshift(-92, 'D')
df = df.resample('D').ffill()
df = df.reindex(dates)
demand_dict[key] = df
items()
返回字典的键和值