关于dataframe的排序问题,每个dataframe第二次排序的时候会出问题。
Vars
     DataFrame df;
Events
    OnInit()
    {
        Array<Array<Numeric>> datas=
        [[0.51,0.83],
         [0.21,0.33],
         [0.31,0.33],
         [0.31,0.43]];
        Array<String> columns = ["北京","上海"];
        df.init(datas,columns);
        Array<String> index = ["8","5","6","1"];
        df.rename(index);


        DataFrame tmp_df = df;
        //////////////////////////////////////这是第一次排序//////////////////////////////////////
        tmp_df.sort_values("北京");
        print("df.sort_values(北京) :");
        print(tmp_df.toString());
        ////////////////////////////////////////////////////////////////////////////////////////



        tmp_df = df;//把这条语句注释掉,第二次排序结果不同,这是为什么啊?
        
        
        //////////////////////////////////////这是第二次排序//////////////////////////////////////
        tmp_df.sort_values(["北京","上海"],false);
        print("df.sort_values([北京,上海]) :");
        print(tmp_df.toString());
        //////////////////////////////////////这是第二次排序//////////////////////////////////////
        
        print("注释掉中间语句,再次执行一遍结果如下:");
    }

请问老师,为什么会出现这种情况呢?(案例基本上来源于帮助文档里关于sort_values的案例,我把其他多余的去掉了。)

目标是:”将北京那一列降序排列,同时上海那一列降序排列,北京优先级高于上海“。

tmp_df = df;//把这条语句注释掉再执行一遍,第二次排序结果会不正确,这是为什么啊?(北京列数值相同时,上海那一列没有从高到低排序)

【期权合约排序】由于dataframe多列排序算法bug,可以创建复合键数组实现多列排序
dataframe多列排序,不支持连续两次排序,反复实验多次认为确实是bug!
DataFrame相关问题求教
DataFrame对象的传递
请教老师关于分段止盈的排序问题
报价面板的排序保存问题
DataFrame 切片数据提取
map的排序
关于指标用于品种排序
排序

多列排序,第二次排序时结果错误,测试代码如下:

Vars
     DataFrame df;
Events
    OnInit()
    {
        Array<Array<Numeric>> datas=
        [[0.51,0.83],
         [0.21,0.33],
         [0.31,0.33],
         [0.31,0.43]];
        Array<String> columns = ["北京","上海"];
        df.init(datas,columns);
        Array<String> index = ["8","5","6","1"];
        df.rename(index);


        DataFrame tmp_df = df;
 

        print("初始状态:");
        print(df.toString());

        tmp_df.sort_values(["北京","上海"],false);
        print("第一次排序后df的状态:");
        print(df.toString());  // 看看df是否被修改了


        print("第二次排序前tmp_df的状态,也是第一次排序的结果:");
        print(tmp_df.toString());

        tmp_df.sort_values(["北京","上海"],true);

        print("第二次排序最终结果:");
        print(tmp_df.toString());
        

    }

输出结果:

我看看