当前位置:   article > 正文

pandas:分组和排序_pandas 分组排序

pandas 分组排序

grouping and sorting

lambda是匿名函数,即不再使用def的形式,可以简化脚本,使结构不冗余何简洁

  • groupby()
  • value_counts()
  • agg():可以同时运行一堆不同的函数(max()、min())
  • reset_index():转回常规索引的方法
  • sort_values()
  • sort_index():按照索引值排序
    1.分组分析(groupwise analysis)
reviews.groupby("points").points.count()
  • 1
reviews.groupby('points').price.min()
  • 1

将生成的每个组视为 DataFrame 的一个切片,其中仅包含具有匹配值的数据。我们可以使用 apply() 方法直接访问这个 DataFrame,然后我们可以以任何我们认为合适的方式操作数据。

reviews.groupby('winery').apply(lambda df: df.title.iloc[0])
  • 1

对于更细粒度的控制,您还可以按多列进行分组。例如,以下是我们如何按国家和省份挑选最好的葡萄酒:

reviews.groupby(['country','province']).apply(lambda df :df.loc[df.points.idxmax()])
  • 1

agg()用来生成数据集的简单统计摘要

reviews.groupby(["country"]).price.agg([len,min,max)]
  • 1

2.多索引(multi-indexes)
到目前为止,在我们看到的所有示例中,我们一直在使用具有单标签索引的 DataFrame 或 Series 对象。 groupby() 略有不同的是,根据我们运行的操作,它有时会导致所谓的多索引。

countries_reviews = reviews.groupby(['country','province']).desccription.agg([len])
type(countries_reviews.index)
  • 1
  • 2

3.sorting(排序)
index order:索引顺序
value order:值顺序

countries_reviewed = countries_reviewed.reset_index()
countries_reviewed.sort_values(by='len') #默认升序
  • 1
  • 2
countries_reviewed.sort_values(by = 'len',ascending = False) #按照len的降序排列
  • 1

same arguments and default order(相同的参数和默认顺序)

countries_reviewed.sort_index()
#一次可以按照多列排序
countries_reviewed.sort_values(by=['country','len'])

  • 1
  • 2
  • 3
  • 4

1.谁是数据集中最常见的葡萄酒评论家?创建一个 Series,其索引是数据集中的 taster_twitter_handle 类别,其值计算每个人写了多少评论。
(1)在这里插入图片描述
(2)其中description这一列可以看出来就是不同评论者的评论总数,在调取[‘description’]就行了。注意不可以加括号。

在这里插入图片描述
(3)在这里插入图片描述
2.给定金额我能买到的最好的酒是什么?创建一个“系列”,其索引是葡萄酒价格,其值是评论中给出的葡萄酒的最大点数。按价格对值进行升序排序(因此“4.0”美元在顶部,“3300.0”美元在底部)。
也就是说:index是price;value是max(points),整体是一个序列Series

升序:默认情况(sort())
(1)
在这里插入图片描述
(2)Series
在这里插入图片描述
(3)Series
在这里插入图片描述
?所以这三种表示方法都是一样的呀?

3.每个“品种”葡萄酒的最低和最高价格是多少?创建一个“DataFrame”,其索引(index)是数据集中的“variety”类别,其值(values)为“min”和“max”值。
type:DataFrame
在这里插入图片描述
4.最贵的葡萄酒品种有哪些?创建一个变量“sorted_varieties”,其中包含上一个问题的数据框副本,其中品种根据最低价格按降序排列,然后按最高价格(打破平局)。
(1)只按min进行降序排列
在这里插入图片描述
(2)只按max进行降序排列
在这里插入图片描述
(3)min和max都应用
在这里插入图片描述
在这里插入图片描述
5.创建一个“系列”(series),其索引(index)是评论者(taster_name),其值是该评论者给出的平均评论分数。提示:您将需要 taster_namepoints 列。
在这里插入图片描述
不同审稿人给出的平均分是否存在显着差异?运行下面的单元格以使用 describe() 方法查看值范围的摘要。

6.最常见的国家和品种组合是什么?创建一个索引为 {country,variety} 对的 MultiIndex 的 Series。例如,在美国生产的黑比诺(piont noir)应该映射到 {“US”, “Pinot Noir”}。根据酒的数量按降序对系列中的值进行排序。
(1)有一点多此一举,因为size()可以计算分类后值的汇总
在这里插入图片描述
(2)使用了winery.count()进行了汇总
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/161948
推荐阅读
相关标签
  

闽ICP备14008679号