首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【R语言】数据框按两列排序

有时候我们会按照两个条件来对数据排序。假设我们手上有下面这套数据,9个人,第二列(score)为他们的考试成绩,第三列(code)为对应的评级。80分以上为优秀,60-80为良,60以下为差。...主要用的是R中的order这个函数。...#读入文件,data.txt中存放的数据为以上表格中展示的数据 file=read.table(file="data.txt",header=T,sep="\t") #先按照code升序,再按照Score...,只需要前面加个负号就可以了 View(file[order(file$Code,-file$Score),]) 下面是按照code升序,然后再按score降序排列的结果,是不是跟Excel处理的结果一样...在R里面我们还可以指定code按照一定的顺序来排列 #按照指定的因子顺序排序,先good,在excellent,最后poor file$Code <- factor(file$Code , levels

2.3K20

盘点使用Pandas解决问题:对比两列数据取最大值的5个方法

一、前言 前几天在Python星耀交流群有个叫【iLost】的粉丝问了一个关于使用pandas解决两列数据对比的问题,这里拿出来给大家分享下,一起学习。...大概意思是说在DF中有2列数据,想每行取两列数据中的最大值,形成一个新列,该怎么写?最开始【iLost】自己使用了循环的方法写出了代码,当然是可行的,但是写的就比较难受了。...二、解决过程 这里给出5个方法,感谢大佬们的解答,一起来看看吧! 方法一:【月神】解答 其实这个题目的逻辑和思路也相对简单,但是对于Pandas不熟悉的小伙伴,接受起来就有点难了。...长城】解答 这个方法也是才哥群里的一个大佬给的思路。...这篇文章基于粉丝提问,针对df中,想在每行取两列数据中的最大值,作为新的一列问题,给出了具体说明和演示,一共5个方法,顺利地帮助粉丝解决了问题,也帮助大家玩转Pandas,学习Python相关知识。

4.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    pandas按行按列遍历Dataframe的几种方式

    遍历数据有以下三种方法: 简单对上面三种方法进行说明: iterrows(): 按行遍历,将DataFrame的每一行迭代为(index, Series)对,可以通过row[name]对元素进行访问。...itertuples(): 按行遍历,将DataFrame的每一行迭代为元祖,可以通过row[name]对元素进行访问,比iterrows()效率高。...iteritems():按列遍历,将DataFrame的每一列迭代为(列名, Series)对,可以通过row[index]对元素进行访问。...name访问对应的元素 for row in df.iterrows(): print(row[‘c1’], row[‘c2’]) # 输出每一行 1 2 3 按行遍历itertuples()...row, ‘name’) for row in df.itertuples(): print(getattr(row, ‘c1’), getattr(row, ‘c2’)) # 输出每一行 1 2 按列遍历

    7.1K20

    按照A列进行分组并计算出B列每个分组的平均值,然后对B列内的每个元素减去分组平均值

    一、前言 前几天在Python星耀交流群有个叫【在下不才】的粉丝问了一个Pandas的问题,按照A列进行分组并计算出B列每个分组的平均值,然后对B列内的每个元素减去分组平均值,这里拿出来给大家分享下,一起学习...888] df = pd.DataFrame({'lv': lv, 'num': num}) def demean(arr): return arr - arr.mean() # 按照"lv"列进行分组并计算出..."num"列每个分组的平均值,然后"num"列内的每个元素减去分组平均值 df["juncha"] = df.groupby("lv")["num"].transform(demean) print(df...df.groupby('lv')["num"].transform('mean') df["juncha"] = df["num"] - df["gp_mean"] print(df) # 直接输出结果,省略分组平均值列...这篇文章主要分享了Pandas处理相关知识,基于粉丝提出的按照A列进行分组并计算出B列每个分组的平均值,然后对B列内的每个元素减去分组平均值的问题,给出了3个行之有效的方法,帮助粉丝顺利解决了问题。

    3K20

    分组后合并分组列中的字符串如何操作?

    一、前言 前几天在Python最强王者交流群【IF】问了一个Pandas的问题,如图所示。...下面是他的原始数据: 序号 需求 处理人 1 优化 A 2 优化 B 3 运维 A 4 运维 C 5 需求 B 6 优化 C 7 运维 B 8 运维 C 9 需求 C 10 运维 C 11 需求 B...如果不去重,就不用unique,完美地解决粉丝的问题! 后来他自己参考月神的文章,拯救pandas计划(17)——对各分类的含重复记录的字符串列的去重拼接,也写出来了,如图所示。...这篇文章主要盘点了一个pandas的基础问题,文中针对该问题给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。...最后感谢粉丝【IF】提问,感谢【月神】、【瑜亮老师】给出的思路和代码解析,感谢【dcpeng】等人参与学习交流。

    3.3K10

    Pandas针对某列的百分数取最大值无效?(下篇)

    一、前言 前几天在Python白银交流群【上海新年人】问了一个Pandas数据提取的问题,问题如下:大佬们,我发现个问题,请教一下,我把某一列譬如0.001什么的,转化了1%以后再对某列做print(df...[df.点击 == df['点击'].max()],最大值 明明有15%的却显示不出来,只显示出来10%以下的,是什么原因啊?...上一篇文章中【瑜亮老师】先取最大值所在的行,然后在转换格式展示数据。这个思路顺利地解决了粉丝的问题,这一篇文章我们一起来看看另外的一个解决思路。那如果这excel中已经有百分数了,怎么取最大数?...二、实现过程 后来【论草莓如何成为冻干莓】给了一个提示如下:一般来说在Excel可以设置格式为百分数,而不是添加字符串%符号,如果是后者,把字符串型的百分数转换成小数,再取最大值 这里【瑜亮老师】给了一个代码如下...其实这些单元格里面保存的都是数字而已,只是展示的样式不同。 三、总结 大家好,我是皮皮。

    17610

    Pandas针对某列的百分数取最大值无效?(上篇)

    一、前言 前几天在Python白银交流群【上海新年人】问了一个Pandas数据提取的问题,问题如下:大佬们,我发现个问题,请教一下,我把某一列譬如0.001什么的,转化了1%以后,再对某列做print(...df[df.点击 == df['点击'].max()],最大值 明明有15%的却显示不出来,只显示出来10%以下的,是什么原因啊?...下面是他的两行代码: df = df.assign(比例=lambda x:x.回复/(x.点击+x.回复)) df['比例'] = df['比例'].apply(lambda x:'{:.2%}'.format...二、实现过程 后来【瑜亮老师】也给了一个提示如下:因为你的百分比这一列是文本格式的。首先的话需要进行数据类型转换,现在先转为flaot型的。...df[df.比例 == df.比例.max()] max1['比例'] = max1['比例'].apply(lambda x: '{:.2%}'.format(x)) print(max1) 先取最大值所在的行

    12110

    按列翻转得到最大值等行数(查找相同的模式,哈希计数)

    题目 给定由若干 0 和 1 组成的矩阵 matrix,从中选出任意数量的列并翻转其上的 每个 单元格。 翻转后,单元格的值从 0 变成 1,或者从 1 变为 0 。...返回经过一些翻转后,行上所有值都相等的最大行数。 示例 1: 输入:[[0,1],[1,1]] 输出:1 解释:不进行翻转,有 1 行所有值都相等。...示例 2: 输入:[[0,1],[1,0]] 输出:2 解释:翻转第一列的值之后,这两行都由相等的值组成。...示例 3: 输入:[[0,0,0],[0,0,1],[1,1,0]] 输出:2 解释:翻转前两列的值之后,后两行由相等的值组成。...解题 一开始想是不是动态规划 看答案是找最多出现的模式,如11011,00100,反转第3列后变成11111,00000,都是1或者0 那把0开头的或者1开头的,选一种,全部翻转,用哈希表计数,找到最多出现的

    2.1K20

    Mysql 分组函数(多行处理函数),对一列数据求和、找出最大值、最小值、求一列平均值。

    分组函数还有另外一个名字,多行处理函数 mysql分组函数 count 计数 count(*)不是统计某个字段中数据的个数,而是统计总记录的条数 count(字段名)表示统计的是当前字段中不为null...的数据的总数量 sum 求和 avg 平均值 max 最大值 min 最小值 分组函数特点 输入多行,最终输出的结果是一行。...分组函数自动忽略NULL 分组函数不可直接使用在where子句当中 具体实现语法(例子) //求sal字段的总和 select sum(sal) from emp; //求sal字段的最大值 select...max(sal) from emp; //求sal字段的最小值 select min(sal) from emp; //求sal字段的平均值 select avg(sal) from emp; //...求sal字段的总数量 select count(sal) from emp; //求总数量 select count(*) from emp; 本文共 175 个字数,平均阅读时长 ≈ 1分钟

    2.9K20

    Excel按某一列数据从另一列找到对应字段的数值

    现在已知一个Excel数据,假设其中W列包含了上海市全部社区的名称,而其后的Y列则是这些社区对应的面积;随后,Z列是另一批社区的名称,其中既有上海市的社区(也就是在W列中的数据),也可能会有其他城市的社区...我们希望,基于前面的W列与Y列,分别提取Z列社区对应的面积,存放在AA列里。如下图所示。   明确了需求,我们就可以通过Excel的公式来实现这一需求。...接下来,W2:Y53表示我们要从哪里寻找社区的面积。前面提到了,我们需要从W列和Y列中分别找到对应的社区名称和社区面积,所以这就需要至少将这两列包括在内,同时行数也要保证包括在内,如下图所示。...前面提到,我们需要从W列和Y列中分别找到对应的社区名称和社区面积,也就是从W2:Y53这个里面找;而其中,表示社区面积的那一列排在第3列,如下图所示;所以这里就是3。   ...首先,如下图所示,可以看到AA列中,金谷园居委会的面积,就是W列中金谷园居委会的面积。

    17310

    两种主要列存储方式的区别

    我认为,称呼这两个系统的列存储导致了大量的混乱和错误的预期。这篇博客文章试图澄清一些这种混乱,突出这些集合系统之间的高级差异。 最后,我将提出一些可能的方法来重命名这些组,以避免将来混淆。...对于本博客文章,我将引用以下两个组作为组A和组B: •组A:Bigtable,HBase,Hypertable和Cassandra。...这意味着并非行的所有部分都在存储器中的单个I / O操作中被拾取,如果只有行的子集与特定查询相关,这被认为是一件好事。然而,列族可能由许多列组成,列族中的这些列不能单独访问。...我们可以找出它来自哪个列,因为来自同一列的所有值都是连续存储的。我们可以通过计算在同一列中有多少值来计算它来自哪一行。 id列中的第四个值匹配到与姓氏列中的第四个值相同的行以及电话列中的第四个值等。...因此,即使调用它们两个列存储有一些优点(它使得看起来像“列存储运动”是一个真正的热门),我们需要作出更大的努力,以避免将来这两组混淆。

    1.5K10

    PQ又一新陷阱:分组加的列,哪儿去了?

    1 今天,微信群里有位朋友说,参照我以前写的文章,通过分组的方法对自己的数据分组加索引,新加的索引列(Index)却不存在: 其实,如果大家仔细对比一下我文章里的步骤公式和现在生成的公式的话...以前(Excel2016)做分组的时候,生成的公式后面只有一个"type table": 而现在(Office365)做分组的时候,生成的公式最后的"type table"后面,还多了一长串...: 也就是说,较新版本(不同版本的情况有些差异)的Power Query里的分组操作会自动带上原表中所有字段的类型代码!...如果前面看过我的视频《PQ里的操作陷阱》,可能就比较容易想得到,正是由于多出来的这段类型代码,导致自己新加的列出不来。...知道问题的所在,解决起来就简单了,方法有两个: 1、删掉类型代码的内容: 2、在转换类型里加上新加的字段且声明其类型:

    77820

    使用Pandas完成data列数据处理,按照数据列中元素出现的先后顺序进行分组排列

    一、前言 前几天在Python钻石交流群【瑜亮老师】给大家出了一道Pandas数据处理题目,使用Pandas完成下面的数据操作:把data列中的元素,按照它们出现的先后顺序进行分组排列,结果如new列中展示...new列为data列分组排序后的结果 print(df) 结果如下图所示: 二、实现过程 方法一 这里【猫药师Kelly】给出了一个解答,代码和结果如下图所示。...(*([k]*v for k, v in Counter(df['data']).items()))] print(df) 运行之后,结果如下图所示: 方法四 这里【月神】给出了三个方法,下面展示的这个方法和上面两个方法的思路是一样的...cat.reorder_categories(df['data'].unique()).sort_values().values print(df) 运行之后,结果如下图所示: 方法六 后来【月神】还补充了第三个方法...这篇文章主要盘点了使用Pandas完成data列数据处理,按照数据列中元素出现的先后顺序进行分组排列的问题,文中针对该问题给出了具体的解析和代码演示,一共6个方法,欢迎一起学习交流,我相信还有其他方法,

    2.3K10

    Excel中两列(表)数据对比的常用方法

    Excel中两列数据的差异对比,方法非常多,比如简单的直接用等式处理,到使用Excel2016的新功能Power Query(Excel2010或Excel2013可到微软官方下载相应的插件...一、简单的直接等式对比 简单的直接等式对比进适用于数据排列位置顺序完全一致的情况,如下图所示: 二、使用Vlookup函数进行数据的匹配对比 通过vlookup函数法可以实现从一个列数据读取另一列数据...vlookup函数除了适用于两列对比,还可以用于表间的数据对比,如下图所示: 三、使用数据透视进行数据对比 对于大规模的数据对比来说,数据透视法非常好用,具体使用方法也很简单,即将2列数据合并后...比如,有两个表的数据要天天做对比,找到差异的地方,原来用Excel做虽然也不复杂,但要频繁对比,就很麻烦了,因此,可以考虑使用Power Query来实现直接刷新的自动对比。...1、将需要对比的2个表的数据加载到Power Query 2、以完全外部的方式合并查询 3、展开合并的数据 4、添加差异比对列 5、按需要筛选去掉无差异部分 6、按需要调整相应的列就可以将差异结果返回

    16.4K20
    领券