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

多列排序,第二次排序时结果错误,测试代码如下: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()); }输出结果:

回复:我看看