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

分组并在Pandas DataFrame中查找每组前10%的记录

在Pandas DataFrame中分组并查找每组前10%的记录,可以使用groupby()函数和apply()函数来实现。

首先,使用groupby()函数将DataFrame按照指定的列进行分组。假设我们要按照列A进行分组,代码如下:

代码语言:txt
复制
grouped = df.groupby('A')

接下来,可以使用apply()函数对每个分组进行操作。在这里,我们可以使用apply()函数结合nlargest()函数来查找每个分组中前10%的记录。nlargest()函数可以按照指定的列进行降序排列,并返回指定数量的最大值。假设我们要按照列B进行排序,并返回前10%的记录,代码如下:

代码语言:txt
复制
result = grouped.apply(lambda x: x.nlargest(int(len(x) * 0.1), 'B'))

在上述代码中,lambda x: x.nlargest(int(len(x) * 0.1), 'B')表示对每个分组x,按照列B进行降序排列,并返回前10%的记录。

最后,result将包含每个分组中前10%的记录。

关于Pandas DataFrame的分组和排序操作,可以参考腾讯云的产品介绍链接:Pandas DataFrame分组和排序

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SQL分组查询后取每组的前N条记录

而业务系统的官网上需要滚动展示一些热门资讯信息列表(浏览量越大代表越热门),而且每个类别的相关资讯记录至多显示3条,换句话:“按照资讯分类分组,取每组的前3条资讯信息列表”。...资讯分类 资讯信息记录表示例数据如下: ? 资讯信息记录表 需求 :取热门的资讯信息列表且每个类别只取前3条。...形如“select * from info order by views asc limit 0,3 ”,这条SQL就是取info表中的前3条记录。...但是当你仔细阅读我们的题目要求,你会发现:“它是让你每个类型下都要取浏览量的前3条记录”。 一种比较简单但是粗暴的方式就是在Java代码中循环所有的资讯类型,取出每个类型的前3条记录,最后进行汇总。...就正如案例中求记录的所在分类的排名,把其对等的“转换成有多少条同类别的记录的浏览量比当前记录的大(count聚合函数)” 问题马上就迎刃而解了。 (完)

26.8K32

我的Python分析成长之路9

1.pandas数据结构     在pandas中,有两个常用的数据结构:Series和Dataframe  为大多数应用提供了一个有效、易用的基础。     ...分组 10 print(group.count()) #返回分组的数目 11 print(group.head()) #返回每组的前几个值 12 print(group.max()) #返回每组的最大值...分组 9 print(group.count()) #返回分组的数目 10 print(group.head()) #返回每组的前几个值 11 print(group.max()) #返回每组的最大值...分组 print(group.count()) #返回分组的数目 print(group.head()) #返回每组的前几个值 print(group.max()) #返回每组的最大值 print...(group.mean()) #返回每组的均值 print(group.median()) #返回每组的中位数 print(group.cumcount()) #对每个分组中的成员进行标记 print

2.1K11
  • Pandas

    分组 Pandas 提供了 DataFrame.groupby()方法,按照指定的分组键,将具有相同键值的记录划分为同一组,将具有不同键值的记录划分到不同组,并对各组进行统计计算。...GroupBy 进行描述性统计 对分组结果 GroupBy object 的描述性统计 GroupBy object.count()——返回每组记录数量,包括缺失值。...= vs.groupby(by='date') #各个特征使用相同的函数统计计算 print('汽车销售数据表按日期分组后前5组每组的数量为:\n', vsGroup.count().head...中的年数据前5个为:',year1[:5]) month1 = [i.month for i in order['lock_time']] print('lock_time中的月数据前5个为:',month1...、 counts为值\的汽车销售数据交叉透视表前10行10列 为:\n',vsCross.iloc[:10,:10]) 转换数据–DataFrame 数据离散化 在进行数据分析时,需要先了解数据的分布特征

    9.2K30

    玩转Pandas,让数据处理更easy系列6

    Numpy中只能通过位置找到对应行、列,因此Pandas是更强大的具备可插可删可按照键索引的工具库。...02 Pandas能做什么 Pandas主要能做10件事,现在已经推送了其中大部分,尽管有些点没有深入展开: 能将Python, Numpy的数据结构灵活地转换为Pandas的DataFrame结构(玩转...04 分(splitting) 分组就是根据默认的索引映射为不同索引取值的分组名称,来看如下所示的DataFrame实例df_data,可以按照多种方式对它分组,直接调用groupby接口, ?...如果我们想看下每组的第一行,可以调用 first(),可以看到是每个分组的第一个,last()显示每组的最后一个: agroup.first() ?...如想下载以上代码,请后台回复: pandas 小编对所推文章分类整理,欢迎后台回复数字,查找感兴趣的文章: 1. 排序算法 2. 图算法(含树) 3. 动态规划 4.

    2.7K20

    【数据处理包Pandas】分组及相关操作

    _subplots.AxesSubplot at 0xba3ba58> 查看每组前2条记录: df.groupby('team').head(2) 查看每组后2条记录: df.groupby('team...type(list(df.groupby('team'))[0][1]) pandas.core.frame.DataFrame (三)通过循环查看各组的名称和组中的数据信息 也可以通过循环查看各组的名称和组中的数据信息...,可以是字符串、字符串列表、字典或者 Series、Numpy 数组或函数 axis:指定分组方向是按行分组还是按列分组,默认是按行分组(对记录分组) level:在包含多级索引的 DataFrame...(二)filter函数的用法 filter函数用于对分组进行过滤(类似于SQL中的having子句),返回满足过滤条件的分组中的记录,其参数必须是函数。...applymap函数应用到 DataFrame 对象上,对 DataFrame 对象中的每个元素值进行相同的变换。

    19200

    DataFrame和Series的使用

    中的列表非常相似,但是它的每个元素的数据类型必须相同 创建 Series 的最简单方法是传入一个Python列表 import pandas as pd s = pd.Series([ ' banana...平均值, 标准差, 极值, 分位数 movie.head(10) # 默认取前5条数据 查看数据类型及属性 # 查看df类型 type(df) # 查看df的shape属性,可以获取DataFrame...df按行加载部分数据:先打印前5行数据 观察第一列 print(df.head()) 最左边一列是行号,也就是DataFrame的行索引 Pandas默认使用行号作为行索引。...[:,[0,2,4,-1]] df.iloc[:,0:6:2] # 所有行, 第0 , 第2 第4列 可以通过行和列获取某几个格的元素 分组和聚合运算 先将数据分组 对每组的数据再去进行统计计算如...,求平均,求每组数据条目数(频数)等 再将每一组计算的结果合并起来 可以使用DataFrame的groupby方法完成分组/聚合计算 df.groupby(by='year')[['lifeExp','

    10910

    Pandas tricks 之 transform的用法

    思路二: 对于上面的过程,pandas中的transform函数提供了更简洁的实现方式,如下所示: ? 可以看到,这种方法把前面的第一步和第二步合成了一步,直接得到了sum_price列。...多列分组使用transform 为演示效果,我们虚构了如下数据,id,name,cls为维度列。 ? 我们想求:以(id,name,cls)为分组,每组stu的数量占各组总stu的比例。...具体可以参考官方文档: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.transform.html...#pandas.DataFrame.transform。...在上面的示例数据中,按照name可以分为三组,每组都有缺失值。用平均值填充是一种处理缺失值常见的方式。此处我们可以使用transform对每一组按照组内的平均值填充缺失值。 ?

    2.1K30

    懂Excel就能轻松入门Python数据分析包pandas(四):任意分组成绩条

    后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas 前言 上一节我们介绍了在 pandas 中怎么制作诸如成绩条的技巧,不过那是按照 Excel 解决思路进行的...使用 pandas 最大的好处就是,你可以根据思路编写直白的代码。按"班别",不就是"分组"吗。...如下: - 调用 df.groupby() ,即可按任意维度分组数据 - pandas 的分组比许多主流数据库的 Sql 更加灵活,他为每组划入该组的子集,让我们可以灵活操作,并且还可以每组返回多行记录...那么 DataFrame 里面什么是每行不一样的?没错,就是行索引(index)。如下: 更多的灵活性 这个方式可以制作出灵活多变的小表格,比如,按班别划分,每个小表格最后添加汇总行。...代码如下: - 在之前的基础上加入汇总逻辑 - 通过 df.append ,即可轻松把汇总行添加到 DataFrame 的末尾处

    84420

    懂Excel就能轻松入门Python数据分析包pandas(四):任意分组成绩条

    后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas 前言 上一节我们介绍了在 pandas 中怎么制作诸如成绩条的技巧,不过那是按照 Excel 解决思路进行的...使用 pandas 最大的好处就是,你可以根据思路编写直白的代码。按"班别",不就是"分组"吗。...如下: - 调用 df.groupby() ,即可按任意维度分组数据 - pandas 的分组比许多主流数据库的 Sql 更加灵活,他为每组划入该组的子集,让我们可以灵活操作,并且还可以每组返回多行记录...那么 DataFrame 里面什么是每行不一样的?没错,就是行索引(index)。如下: 更多的灵活性 这个方式可以制作出灵活多变的小表格,比如,按班别划分,每个小表格最后添加汇总行。...代码如下: - 在之前的基础上加入汇总逻辑 - 通过 df.append ,即可轻松把汇总行添加到 DataFrame 的末尾处

    70220

    Pandas_Study02

    pandas 数据清洗 1. 去除 NaN 值 在Pandas的各类数据Series和DataFrame里字段值为NaN的为缺失数据,不代表0而是说没有赋值数据,类似于python中的None值。...Series或DataFrame的各个值进行相应的数据的处理 对series 使用apply # 对series 使用apply ,会将series 中的每个元素执行操作 s = pd.Series(np.arange...applymap() df 中使用applymap 可以对df 中的每一个元素进行操作 val = np.arange(10, 60).reshape(10, 5) idx = np.arange(10...简单的按单列分组 # 按单列进行分组 dg = df0.groupby("fruit") # 打印查看按fruit分组后的每组组名,及详细信息 for n, g in dg: print "group_name...# 分组后对每组数据求平均值 print dg1.agg(np.mean) 也可以应用多个函数 # 以列表的形式传入参数即可,会对每组都执行全部的聚合函数 print dg1.agg([np.mean,

    20510

    Python面试十问2

    五、pandas中的索引操作 pandas⽀持四种类型的多轴索引,它们是: Dataframe.[ ] 此函数称为索引运算符 Dataframe.loc[ ] : 此函数⽤于标签 Dataframe.iloc...七、apply() 函数使用方法 如果需要将函数应⽤到DataFrame中的每个数据元素,可以使⽤ apply() 函数以便将函数应⽤于给定dataframe中的每⼀⾏。...DataFrame的索引值保留在附加的DataFrame中,设置ignore_index = True可以避免这种情况。...九、分组(Grouping)聚合 “group by” 指的是涵盖下列⼀项或多项步骤的处理流程: 分割:按条件把数据分割成多组; 应⽤:为每组单独应⽤函数; 组合:将处理结果组合成⼀个数据结构。...先分组,再⽤ sum()函数计算每组的汇总数据  多列分组后,⽣成多层索引,也可以应⽤ sum 函数 分组后可以使用如sum()、mean()、min()、max()等聚合函数来计算每个组的统计值。

    8810

    esproc vs python 4

    A4:筛选出1998年的交易记录 A5:按照Client进行分组,同时计算交易量Amount之和 A6:按照Amount进行排序 A9:找到Amount累加到一半交易量的位置 A10:A.find(k)...nan的行就是旧表删除的行,由于字段名一样,所以python默认添加的后缀是_x,_y,删除的记录就是截取merge以后的前四个字段。...通过关联字段x 和 y 将P 的记录按照A 对齐。对着排列P计算y的值,计算结果和A中的x的值相等则表示两者对齐。这里是当前产品的出入库记录与B5中的时间序列对齐。...A3中 A7: A.pivot(g,…;F,V;Ni:N'i,…),以字段/表达式g为组,将每组中的以F和V为字段列的数据转换成以Ni和N'i为字段列的数据,以实现行和列的转换。...另外python中的merge函数不支持差集计算(或许其他函数支持),造成在第四例中特别麻烦。python pandas的dataframe结构是按列进行存储的,按行循环时就显得特别麻烦。

    1.9K10

    2020年入门数据分析选择Python还是SQL?七个常用操作对比!

    在阅读本文前,你可以访问下方网站下载本文使用的示例数据,并导入MySQL与pandas中,一边敲代码一边阅读!...二、查找 单条件查找 在SQL中,WHERE子句用于提取那些满足指定条件的记录,语法如下 SELECT column_name,column_name FROM table_name WHERE column_name...而在pandas中,按照条件进行查找则可以有多种形式,比如可以将含有True/False的Series对象传递给DataFrame,并返回所有带有True的行 ?...在pandas中也有类似的操作 ? 查找空值 在pandas检查空值是使用notna()和isna()方法完成的。...> 9; 在pandas中,我们选择应保留的行,而不是删除它们 tips = tips.loc[tips['tip'] <= 9] 五、分组 在pandas中,使用groupby()方法实现分组。

    3.6K31

    综合实例

    本文主要记录在学习机器学习过程中做的一些简单的小项目,项目代码均来自于杨志晓老师的《Python机器学习一本通》一书,机缘巧合之下这本书也算是我接触Python机器学习的启蒙书籍,书本很厚,但是其实内容不多...irisGroup = df_iris.groupby(by='species') #各个特征使用相同的函数统计计算 print('iris数据表按species分组后前5组每组的数量为:\n',...分组后前5组每组的和为:\n', irisGroup.sum().head()) #%% print('iris数据表按species分组后前5组每组的均值为:\n', irisGroup.mean...().head()) #%% print('iris数据表按species分组后前5组每组的标准差为:\n', irisGroup.std().head()) #%% print('iris...数据表按species分组后前5组每组的中位数为:\n', irisGroup.median().head()) #%% print('iris数据表按species分组后前5组每组的大小为

    2.9K20
    领券