精华内容
下载资源
问答
  • 升序排列demo

    2017-08-15 23:45:11
    数据文件中,如果按照第一列升序排列, 当第一相同时,第二列升序排列 如果当第一相同时,求出第二的最小值自定义类型MyNewKey实现了WritableComparable的接口, 该接口中有一个compareTo()方法,当对key...

    数据文件中,如果按照第一列升序排列,
    当第一列相同时,第二列升序排列
    如果当第一列相同时,求出第二列的最小值

    自定义类型MyNewKey实现了WritableComparable的接口,
    该接口中有一个compareTo()方法,当对key进行比较时会调用该方法,而我们将其改为了我们自己定义的比较规则,从而实现我们想要的效果

    private static class MyNewKey implements WritableComparable<MyNewKey> {
            long firstNum;
            long secondNum;
    
            public MyNewKey() {
            }
    
            public MyNewKey(long first, long second) {
                firstNum = first;
                secondNum = second;
            }
    
            @Override
            public void write(DataOutput out) throws IOException {
                out.writeLong(firstNum);
                out.writeLong(secondNum);
            }
    
            @Override
            public void readFields(DataInput in) throws IOException {
                firstNum = in.readLong();
                secondNum = in.readLong();
            }
    
            /*
             * 当key进行排序时会调用以下这个compreTo方法
             */
            @Override
            public int compareTo(MyNewKey anotherKey) {
                long min = firstNum - anotherKey.firstNum;
                if (min != 0) {
                    // 说明第一列不相等,则返回两数之间小的数
                    return (int) min;
                } else {
                    return (int) (secondNum - anotherKey.secondNum);
                }
            }
        }
    

    重写MyMapper

    public static class MyMapper extends
                Mapper<LongWritable, Text, MyNewKey, LongWritable> {
    
            protected void map(LongWritable key,Text value,
                    Mapper<LongWritable, Text, MyNewKey, LongWritable>.Context context)
                    throws java.io.IOException, InterruptedException {
    
                String[] spilted = value.toString().split("\t");
                long firstNum = Long.parseLong(spilted[0]);
                long secondNum = Long.parseLong(spilted[1]);
                // 使用新的类型作为key参与排序
                MyNewKey newKey = new MyNewKey(firstNum, secondNum);
    
                context.write(newKey, new LongWritable(secondNum));
            };
        }

    重写MyReducer

    public static class MyReducer extends
                Reducer<MyNewKey, LongWritable, LongWritable, LongWritable> {
            protected void reduce(
                    MyNewKey key,
                    java.lang.Iterable<LongWritable> values,
                    Reducer<MyNewKey, LongWritable, LongWritable, LongWritable>.Context context)
                    throws java.io.IOException, InterruptedException {
    
                long min = Long.MAX_VALUE;
                for (LongWritable number : values) {
                    long temp = number.get();
                    if (temp < min) {
                        min = temp;
                    }
                }
     
                context.write(new LongWritable(key.firstNum), new LongWritable(min));
            };
        }
    展开全文
  • 来自@smj的数据。在设置import pandas as pdimport numpy as npnumber_list = list(range(1, 11))df = pd.DataFrame({'town': sorted(['Springfield', 'Shelbyville'] * 10),'street': sorted(['Evergreen ...

    使用^{},您可以定义一个排序序列。来自@smj的数据。在

    设置import pandas as pd

    import numpy as np

    number_list = list(range(1, 11))

    df = pd.DataFrame({'town': sorted(['Springfield', 'Shelbyville'] * 10),

    'street': sorted(['Evergreen Terrace', 'Main Street'] * 10),

    'number': number_list + number_list})

    解决方案

    点餐要小心。np.lexsort从序列的最后一个元素开始工作;例如,s1排序优先级最高,s4最低。在

    ^{pr2}$

    结果print(res)

    town street number

    0 Shelbyville Evergreen Terrace 1

    2 Shelbyville Evergreen Terrace 3

    4 Shelbyville Evergreen Terrace 5

    6 Shelbyville Evergreen Terrace 7

    8 Shelbyville Evergreen Terrace 9

    9 Shelbyville Evergreen Terrace 10

    7 Shelbyville Evergreen Terrace 8

    5 Shelbyville Evergreen Terrace 6

    3 Shelbyville Evergreen Terrace 4

    1 Shelbyville Evergreen Terrace 2

    10 Springfield Main Street 1

    12 Springfield Main Street 3

    14 Springfield Main Street 5

    16 Springfield Main Street 7

    18 Springfield Main Street 9

    19 Springfield Main Street 10

    17 Springfield Main Street 8

    15 Springfield Main Street 6

    13 Springfield Main Street 4

    11 Springfield Main Street 2

    展开全文
  • python 矩阵按列升序降序排列

    千次阅读 2020-11-22 22:27:02
    要把矩阵按来进行升序和降序排列是很容易想到的,来源于数据库的思想。数据库中表的结构是由行列所组成的。如果我们把数据库的表想象成一个二维数组,如何做好按的排序呢? 首先想到的是借助np包功能实现,把数组...

    矩阵或二维数组按列排序

    要把矩阵按列来进行升序和降序排列是很容易想到的,来源于数据库的思想。
    数据库中表的结构是由行列所组成的

    行对应一条记录
    列对应属性

    在数据库里
    “select……from …… order by …… DES (or ASE)”
    语句很容易对查询结果按照某个属性进行降序(升序)排序
    如果我们把数据库的表想象成一个二维数组,如何做好按列的排序呢?

    首先想到的是借助np包功能实现,把数组变成一个矩阵,类似数据库里面的表(如果你学过R语言就更好理解了,即数据框结构)
    然后根据某一列得到顺序,对每行进行调整

    关键函数np.lexsort()

    np.lexsort会返回从小到大(升序)的数组编号,比如[2,6,5]返回的是[0,2,1]代表从大到小分别是第一个,第三个和第二个

    案例演示

    下面提供一个案例演示,目的是按照某列对每个记录进行排序。
    首先构造一个二维数组并矩阵化:

    import numpy as np
    a= np.array([[1,4,7],[2,9,9],[0,5,2]])
    

    可查看数组

    print(input_xy)
    

    在这里插入图片描述

    1. 按照最后一列降序排列
    print(a[np.lexsort(-a.T)])
    

    结果:在这里插入图片描述

    1. 按照最后一列升序排列
      思路:转置矩阵后,按转置的矩阵第一行得到序号数字,再用原矩阵重新生成矩阵
      (注意注释)
    print(a[np.lexsort(a.T)])         #a前面是否有负号决定升序降序,原理是取了相反数
    

    在这里插入图片描述

    1. 按照第二列降序排列,如果第二列相同
      稍复杂一点,思路是把这一列拿出来得到顺序后,对原来的二维数组进行排序
    print(a[np.lexsort([-a.T[1]])])  #1代表第二列,如果是0则代表按第一列
    

    在这里插入图片描述
    完毕

    展开全文
  • HTML代码: 姓名 性别 日期 张三 女 2000/08/23 李四 女 1993/11/02 王五 男 1998/01/15 升序降序 JavaScript代码:

    HTML代码: 

       <table border="1" style="width:300px" align="center">
            <thead>
                <th>姓名</th>
                <th>性别</th>
                <th>日期</th>
            </thead>
            <tbody class="container">
                <tr>
                    <td>张三</td>
                    <td>女</td>
                    <td>2000/08/23</td>
                </tr>
                <tr>
                    <td>李四</td>
                    <td>女</td>
                    <td>1993/11/02</td>
                </tr>
                <tr>
                    <td>王五</td>
                    <td>男</td>
                    <td>1998/01/15</td>
                </tr>
            </tbody>
        </table>
        <div>
            <button onclick="setDom('asc')">升序</button><button onclick="setDom('desc')">降序</button>
        </div>

    JavaScript代码:

     <script>
            let compareAttribute = function (keyName, type) {
                return function (beforeObj, currentObj) {
                    let beforeVal = new Date(beforeObj[keyName]).getTime();
                    let currentVal = new Date(currentObj[keyName]).getTime();
                    // 方法一
                    // if (beforeVal > currentVal) {
                    // return 1;
                    // } else if (beforeVal < currentVal) { 
                    // return -1;
                    // } else {
                    // return 0;
                    // };
                    //方法二(注意点:升序为两数求差值为负数, 降序为两数求差值为正数) ;
                    if ('desc' === type) {
                        return currentVal - beforeVal;
                    } else {
                        return beforeVal - currentVal;
                    }
                }
            }
    
            function setDom(type) {
                // 获取tr集合可以通过注释的这两句或使用中的那两句
                // let tbodyNodes = document.getElementsByTagName('tbody');
                // let trNodes = tbodyNodes[0].getElementsByTagName("tr");
                // 第一步:先获取出整个table的数据,拼接成一个对象数组;
                let tbodyNodes = document.querySelector('.container');
                let trNodes = tbodyNodes.getElementsByTagName("tr");
                let newTr = Array.from(trNodes);
                let data = newTr.map(element => {
                    let ind = 0;
                    return {
                        name: element.getElementsByTagName("td")[ind++].innerText,
                        gender: element.getElementsByTagName("td")[ind++].innerText,
                        date: element.getElementsByTagName("td")[ind++].innerText,
                    }
                });
                // 第二步:得到对象数组data后,调用sort排序方法,传入compareAttribute函数,
                // 在这里我是根据日期进行排序,所以传入date属性,type为升序还是降序
                data.sort(compareAttribute('date', type));
                // 第三步:根据排序完毕后的新数组重新生成tbody内部节点,循环拼接成新tr再replace掉原本的旧tr;在这里亦可以考虑先清空tbody,再直接append进入tbody的方式。
                data.forEach((node, ind) => {
                    let eachTr = document.createElement('tr');
                    for (const key in node) {
                        if (node.hasOwnProperty(key)) {
                            let eachTd = document.createElement('td');
                            eachTd.innerText = node[key];
                            eachTr.appendChild(eachTd);
                        }
                    }
                    tbodyNodes.replaceChild(eachTr, tbodyNodes.getElementsByTagName("tr")[ind]);
                });
            }
        </script>

     

    展开全文
  • 原文:http://coolketang.com/staticOffice/5a97f32ad50eee266a9bbac7.html1. 本节课将为您演示,如何... 选择列表中的[升序]选项,按照A列数据的拼音首字母的顺序,对表格进行升序排列。 4. 接着点击选择B列中的任...
  • 如果要输入按升序排列数据,在该中第一个和第二个单元格分别输入1、2。接着,将鼠标移到“1”的单元格右下角,会出现一个“+”。用鼠标往下拉动到所需要的单元格。然后,鼠标拉动到的单元格就会显示相应的按...
  • (3)按照工资的降序排列,当工资相同的时候在按照名字的升序排列。(4)找出员工岗位是SALESMAN 的员工,并按照工资的降序排列(5)另一种升序降序的写法3. 总结sql语句的执行顺序3.1 简单的查询语句3.2 带有where...
  • MapReduce自定义分组Group

    千次阅读 2015-01-18 20:31:04
    在上一篇文章中我们可以对两列数据进行排序,即完成了当第一列相同时第二列数据升序排列的功能,现在我们需要进一步完善一个功能,那就是当第一列相同时求出第二列的最小值或最大值,Hadoop提供了自定义分组的功能,...
  • SQL函数升序Asc,降序Desc使用总结

    千次阅读 2019-06-14 15:47:00
    对某一结果集按进行升序或降序排列即:结果集 Order by 列名/数字 Asc/Desc。 一、Asc,Desc排序讲以下5点 1、不写关键字Asc/Desc,默认按Asc排序 2、列名的多种代替方式 3、NULL是中的最大值 4、多个...
  • print(sorted(a, key=lambda x: x[1])) # x[n]就是按照数据的第n(或者第几)个元素进行升序排列 print(sorted(a, key=lambda x: x[1], reverse=True)) # reverse = True 让数据进行降序排列,默认升序
  • 在GridView中显示的数据可能不是按照某种排列书序的,例如ID,假如我们让它按照升序来进行排序,参照CSDN上清清月儿的写法,在RowDataBound中增加代码如下: if (e.Row.RowIndex != -1) { int id = e.Row....
  • 数值(按升序排列) 整型: tinyint:极小的整型数据,1个字节。 smallint :较小的整型数据,2个字节。 mediumint:中等大小的整型数据,3个字节。 int:标准大小的整型数据,4个字节。 bigint:较大的整型数据,8...
  • 需求:有时我们需要对DataFrame中某一进行升序或降序排列,并取出某个/些排序序号对应的行。 示例:以下是全球部分国家不同酒类(啤酒,白酒,红酒)的消耗量,我们要找出中国的啤酒消耗量在这些国家中排第几名。 ...
  • 有时我们在排序时,比如排列成绩时,我们不能变动学生的总成绩顺序,但是还要给出学生的总排名,那么...3.再输入需要排序的范围,要绝对引用,即在字母和数字前加$,最后输入降序排列:0,升序排列:1 降序: 升...
  • pandas中数据的处理

    2020-01-18 20:25:44
    # 按照col1排序数据,默认升序排列 df.sort_values(col1): # 按照col1降序排列数据 df.sort_values(col2, ascending=False): # 先按col1升序排列,后按col2降序排列数据 df.sort_values([col1,col2], ...
  • 需求:我想等频分箱,就是比如一个score有不同的分数,先按照分数升序排列,排列后按照人数的分位数进行分箱,最终实现下图效果数据下载链接网址https://bbs.pinggu.org/forum.php?mod=viewthread&tid=9485342&...
  • 普通排序选中表格中任意单元格,点击“数据”选项卡下的“排序和筛选”组中的“升序”、“降序”,即可直接完成排序。这时的排序结果是以选中单元格所在,按汉语拼音首字母顺序排列的。2.笔画排序在某些时候,你的...
  • 需求:我想等频分箱,就是比如一个score有不同的分数,先按照分数升序排列,排列后按照人数的分位数进行分箱,最终实现下图效果数据下载链接网址https://bbs.pinggu.org/forum.php?mod=viewthread&tid=9485342&...
  • SortedSet是一个按照升序排列元素的Set。 List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的方式。 Map:包含了key-value对。Map不能包含重复的key。SortedMap是一个按照升序排列key的Map。 ...
  • 1.查询stu01表中,全部数据```select * from stu01;```2.查询cou01表中,课程编号、课程名称```select * from cou01;```3.查询sco01表中,学员编号、学员成绩并给每起别名```select sno as 学员编号,garde as ...
  • 导引本文主要是针对在微头条上发布关于SQL...比如我们要对部门编号为3的员工工资的按升序排列结果,可以这样进行SQL语句的编写:select ename,job,salary,comm from employee where departid = 2 order by salary as...
  • 本文目录总结sort_values函数的用法按年龄对行进行升序排列按年龄对行进行降序排列按年龄升序身高降序排列数据框对进行排序注意:本文沿用数据分析第一课【Python数据分析—数据建立】里的数据框date_frame:1 ...
  • 例如数据窗口是按整型字段“ID”升序排列的,用户在单行编辑器中输入1,则数据窗口滚动到ID字段第一位为“1”的第一行并加亮显示;再在1后输入0,则数据窗口滚动到ID字段前两位为“10”的第一行,依次类推。 答:...
  • 编程的核心思想是:先根据冒泡排序法把主动数据进行升序排列,并且跟踪索引的变化,然后根据排序后的已经更改的索引反推出被动数据相应的排序后状态。程序如下: q=[182,330,400,360,200]#主动排序数据 t=[51,6
  • 1. 排序子句 order by 使用order by子句,对查询结果进行排序,默认是升序 ... //升序排列 select * from order_table where user_id in (1,4) order by price desc; //降序排列 说明:order by子句
  • 数据查询基础

    2018-07-23 11:51:00
    一. 数据查询基础 1. 查询所有数据 select * from 表名 2. 根据限制条件查询数据 select * from 表名 where 限制条件 3. 根据特定进行排序,默认为升序排列 select * from 表名 order by 排序列名 升序/降序 4....
  • 本文目录总结sort_values函数的用法按年龄对行进行升序排列按年龄对行进行降序排列按年龄升序身高降序排列数据框对进行排序注意:本文沿用数据分析第一课【Python数据分析—数据建立】里的数据框date_frame:1 ...
  • 对数据集中某列数据升序/降序排列并添加一列对应的排序序号;同时输出指定序号对应的行。下面以具体案例来说明怎么实现这一需求。 示例: 导入数据: 本文引用的数据集是世界上各大洲的主要国家在某时间段内的白酒,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 441
精华内容 176
关键字:

列数据升序排列