5、Pandas分组和排序

本文介绍了Pandas中的分组分析,展示了如何利用groupby()进行数据分组并执行各种摘要函数,如计算每组的频数、最小值等。还探讨了多级索引的使用,以及如何通过sort_values()和sort_index()方法对数据进行排序。
摘要由CSDN通过智能技术生成


分组和排序可以提升您的数据分析水平。数据集越复杂,这部分就越显得重要。

本节夸克网盘数据集链接:https://pan.quark.cn/s/07400ba46613 提取码:Z9sZ

简介

映射允许我们逐个值地对DataFrame或Series中的数据进行转换,作用于整个列。然而,通常我们希望对数据进行分组,然后针对数据所在的组执行特定操作。

正如您将了解到的,我们可以通过groupby()操作来实现这一点。我们还将涵盖一些其他主题,比如更复杂的DataFrame索引方式,以及如何对数据进行排序。

组内分析

到目前为止,我们已经大量使用的一个函数是value_counts()函数。我们可以通过以下方式复制value_counts()的功能:

In [1]:

import pandas as pd
reviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv", index_col=0)
pd.set_option("display.max_rows", 5)

In [2]:

reviews.groupby('points').points.count()

Out[2]:

points
80     397
81     692
      ... 
99      33
100     19
Name: points, Length: 21, dtype: int64

groupby()创建了一个将相同的分值分配给给定葡萄酒的评论组。然后,对于每个组,我们获取了points()列,并计算了它出现的次数。value_counts()只是这个groupby()操作的一个快捷方式。

我们可以使用之前用过的任何摘要函数来处理这些数据。例如,要获取每个分值类别中最便宜的葡萄酒,我们可以执行以下操作:

In [3]:

reviews.groupby('points').price.min()

Out[3]:

points
80      5.0
81      5.0
       ... 
99     44.0
100    80.0
Name: price, Length: 21, dtype: float64

您可以将我们生成的每个组视为DataFrame的一个切片,其中仅包含与值匹配的数据。我们可以直接使用apply()方法访问这个DataFrame,然后可以以任何我们认为合适的方式操作数据。例如,以下是从数据集中每个酿酒厂中评论的第一瓶葡萄酒中选择名称的一种方式:

In [4]:

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

Out[4]:

winery
1+1=3                          1+1=3 NV Rosé Sparkling (Cava)
10 Knots                 10 Knots 2010 Viognier (Paso Robles)
                                  ...                        
àMaurice    àMaurice 2013 Fred Estate Syrah (Walla Walla V...
Štoka                         Štoka 2009 Izbrani Teran (Kras)
Length: 16757, dtype: object

为了更精细的控制,您还可以按多个列进行分组。例如,以下是如何选择每个国家和省份中最好的葡萄酒ÿ

  • 36
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法蒋同学

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值