为multiindex定义的dataframe赋值

2024-09-29 02:15:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由

factor_list = ['factor1', 'factor2', 'factor3']
method_list = ['method1', 'method2', 'method3']

grouping_list = ['group1', 'group2', 'group3']

parameter_list = [1, 5, 10, 20, 40] 

iterables = [factor_list, method_list, parameter_list, grouping_list]

axis_names = ['factor', 'method', 'param', 'grouping']

multi_index = pd.MultiIndex.from_product(iterables, names=axis_names)

column_list = ['a', 'b', 'c', 'd', 'e']

results = pd.DataFrame(index=multi_index, columns=column_list)

results.sort_index(inplace=True)

那我就知道了

^{pr2}$

并将计算的值填充到切片中(由函数完成)。
然后我发现我不能把结果复制回来

results.loc['factor2'] = slice 

以下行引发错误:

cannot align on a multi-index with out specifying the join levels

确切的问题是:
如何将切片中的内容复制回结果的factor2部分?在


Tags: indexparameternames切片columnmultiresultsmethod
1条回答
网友
1楼 · 发布于 2024-09-29 02:15:34

对于我来说,using slicers与{a2}一起工作:

import pandas as pd, numpy as np

factor_list = ['factor1', 'factor2', 'factor3']
method_list = ['method1', 'method2', 'method3']

grouping_list = ['group1', 'group2', 'group3']
strategy_list = ['s1', 's2', 's3']

parameter_list = [1, 5, 10, 20, 40]  # -999 mean not applicable

iterables = [factor_list, strategy_list, parameter_list, grouping_list]

axis_names = ['factor', 'method', 'param', 'grouping']

multi_index = pd.MultiIndex.from_product(iterables, names=axis_names)

column_list = ['a', 'b', 'c', 'd', 'e']

results = pd.DataFrame(np.arange(len(multi_index)*len(column_list)).reshape((len(multi_index),len(column_list))),
                       index=multi_index, columns=column_list)
results.sort_index(inplace=True)
^{pr2}$

相关问题 更多 >