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

数据导入与预处理-第6章-02数据变换

2.2 轴向旋转(6.2.2 ) 掌握pivot()和melt()方法的用法,可以熟练地使用这些方法实现轴向旋转操作 2.2.1 pivot方法 pivot()方法用于将DataFrame类对象的某一列数据转换为列索引...基于列值重塑数据(生成一个“透视”表)。使用来自指定索引/列的唯一值来形成结果DataFrame的轴。此函数不支持数据聚合,多个值将导致列中的MultiIndex。...,商品一列的唯一数据变换为列索引: # 将出售日期一列的唯一数据变换为行索引,商品一列的唯一数据变换为列索引 new_df = df_obj.pivot(index='出售日期', columns='商品名称...=False) 输出为: 2.3 分组与聚合(6.2.3 ) 分组与聚合是常见的数据变换操作 分组指根据分组条件(一个或多个键)将原数据拆分为若干个组; 聚合指任何能从分组数据生成标量值的变换过程...() 2.3.1.1 分组操作 pandas中使用groupby()方法根据键将原数据拆分为若干个分组。

19.3K20

Python中的groupby分组

OUTLINE 根据表本身的某一列或多列内容进行分组聚合 通过字典或者Series进行分组 根据表本身的某一列或多列内容进行分组聚合 这个是groupby的最常见操作,根据某一列的内容分为不同的维度进行拆解...,将同一维度的再进行聚合 按一列进行聚合 import pandas as pd import numpy as np df = pd.DataFrame({ 'key1':list('aabba...,则看的是多列之间维度的笛卡尔积 比如按照key1列,可以分为a和b两个维度,按照key2列可以分为one和two两个维度,最后groupby这两列之后的结果就是四个group。...mapping2 = pd.Series(mapping) # mapping2 橘子 水果 眼影 化妆品 眼线 化妆品 苹果 水果 香蕉 水果 dtype: object 之后将Series...,在groupby之后所使用的聚合函数都是对每个group的操作,聚合函数操作完之后,再将其合并到一个DataFrame中,每一个group最后都变成了一列(或者一行)。

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

    pandas groupby 用法详解

    具体来说,就是根据一个或者多个字段,将数据划分为不同的组,然后进行进一步分析,比如求分组的数量,分组内的最大值最小值平均值等。在sql中,就是大名鼎鼎的groupby操作。...pandas中,也有对应的groupby操作,下面我们就来看看pandas中的groupby怎么使用。...于是我们先求num的综合,然后在用map方法,给result添加一列,求得其占比! 4.transform的用法 下面我们看一个更复杂的例子。...17.5 4 L2 15 17.5 5 L3 10 11.0 6 L3 12 11.0 上面的方法,我们对level分组以后,我们想给数据集添加一列...上面的解法是先求得每个分组的平均值,转成一个dict,然后再使用map方法将每组的平均值添加上去。

    1.5K20

    数据分组

    数据分组就是根据一个或多个键(可以是函数、数组或df列名)将数据分成若干组,然后对分组后的数据分别进行汇总计算,并将汇总计算后的结果合并,被用作汇总计算的函数称为就聚合函数。...1.分组键是列名 分组键是列名时直接将某一列或多列的列名传给 groupby() 方法,groupby() 方法就会按照这一列或多列进行分组。...groupby(): """ 功能: 根据分组键将数据分成若干组。...""" (1)按一列进行分组 import pandas as pd df = pd.DataFrame([[99,"A类","一线城市","是",6,20,0],...---- 3.神奇的aggregate方法 前面用的聚合函数都是直接在DataFrameGroupBy上调用,这样做每一列都是同一种汇总运算,且一次只能使用一种汇总运算。

    4.5K11

    pandas中的数据处理利器-groupby

    groupby的操作过程如下 split, 第一步,根据某一个或者多个变量的组合,将输入数据分成多个group apply, 第二步, 对每个group对应的数据进行处理 combine, 第三步...('x').mean() y x a 3.0 b 2.5 c 7.5 上述代码实现的是分组求均值的操作,通过groupby方法,首选根据x标签的内容分为a,b,c3组,然后对每组求均值,最后将结果进行合并...>>> df.groupby('class') # 多个列标签的组合,用列表的形式声明 >>> df.groupby(['class','sex']) # 用行标签分组 >>> arrays =...分组过滤 当需要根据某种条件对group进行过滤时,可以使用filter方法,用法如下 >>> df = pd.DataFrame({'x':['a','a','b','b','c','c'],'y':...汇总数据 transform方法返回一个和输入的原始数据相同尺寸的数据框,常用于在原始数据框的基础上增加新的一列分组统计数据,用法如下 >>> df = pd.DataFrame({'x':['a','

    3.6K10

    Pandas数据聚合:groupby与agg

    基础概念 groupby 方法 groupby是Pandas中最常用的分组工具之一。它允许我们将DataFrame按照一个或多个列进行分组,从而可以对每个分组执行各种聚合操作。...常见问题 重复值处理:当分组键存在重复值时,默认情况下会根据这些重复值创建新的分组。如果希望去除重复项后再进行分组,可以在groupby之前使用drop_duplicates()。...同样使用groupby和agg方法,只需传入一个包含多个列名的列表即可。 常见问题 优先级设定:明确各列之间的优先关系非常重要。通常按照从高到低的重要性依次列出列名。...多个聚合函数 有时我们需要对同一列应用多个聚合函数。agg允许我们通过传递一个包含多个函数的列表来实现这一点。这样可以一次性获取多个聚合结果,而不需要多次调用agg。...multi_func_agg_result = df.groupby('department')['salary'].agg(['sum', 'mean']) print("\n对同一列应用多个聚合函数

    41810

    python数据分析——数据分类汇总与统计

    第一个阶段,pandas对象中的数据会根据你所提供的一个或多个键被拆分(split)为多组。拆分操作是在对象的特定轴上执行的。...1.1按列分组 按列分组分为以下三种模式: 第一种: df.groupby(col),返回一个按列进行分组的groupby对象; 第二种: df.groupby([col1,col2]),返回一个按多列进行分组的...使用read_csv导入数据之后,我们添加了一个小费百分比的列tip_pct: 如果希望对不同的列使用不同的聚合函数,或一次应用多个函数,将通过下面的例来进行展示。...具体的办法是向agg传入一个从列名映射到函数的字典: 只有将多个函数应用到至少一列时,DataFrame才会拥有层次化的列 2.3.返回不含行索引的聚合数据 到目前为止,所有例中的聚合数据都有由唯一的分组键组成的索引...Apply函数会将待处理的对象拆分成多个片段,然后对各片段调用传入的函数,最后尝试将各片段组合到一起。 【例13】采用之前的小费数据集,根据分组选出最高的5个tip-pct值。

    82910

    Pandas的apply, map, transform介绍和性能测试

    虽然apply的灵活性使其成为一个简单的选择,但本文介绍了其他Pandas函数作为潜在的替代方案。 在这篇文章中,我们将通过一些示例讨论apply、agg、map和transform的预期用途。...所以无论自定义聚合器是如何实现的,结果都将是传递给它的每一列的单个值。 来看看一个简单的聚合——计算每个组在得分列上的平均值。  ...我们还可以构建自定义聚合器,并对每一列执行多个特定的聚合,例如计算一列的平均值和另一列的中值。 性能对比 就性能而言,agg比apply稍微快一些,至少对于简单的聚合是这样。...apply的一些问题 apply灵活性是非常好的,但是它也有一些问题,比如: 从 2014 年开始,这个问题就一直困扰着 pandas。当整个列中只有一个组时,就会发生这种情况。...结果类似于额外的拆栈操作。我们这里尝试重现它。我们将使用我们的原始数据框并添加一个城市列。假设我们的三个学生 John、James 和 Jennifer 都来自波士顿。

    2K30

    Pandas中实现聚合统计,有几种方法?

    对于上述仅有一种聚合函数的例子,在pandas中更倾向于使用groupby直接+聚合函数,例如上述的分组计数需求,其实就是groupby+count实现。...进一步的,其具体实现形式有两种: 分组后对指定列聚合,在这种形式中依据country分组后只提取name一列,相当于每个country下对应了一个由多个name组成的series,而后的count即为对这个...值得指出,在此例中country以外的其他列实际上也是只有name一列,但与第一种形式其实也是不同的,具体在于未加提取name列之前,虽然也是只有name一列,但却还是一个dataframe: ?...这里,仍然以上述分组计数为例,讲解groupby+agg的三种典型应用方式: agg内接收聚合函数或聚合函数列表。具体实现形式也分为两种,与前面groupby直接+聚合函数的用法类似。...实际上,该种用法其实与groupby直接+聚合函数极为类似。 ? ? agg内接收聚合函数字典,其中key为列名,value为聚合函数或函数列表,可实现同时对多个不同列实现不同聚合统计。

    3.2K60

    对比MySQL学习Pandas的groupby分组聚合

    对于一个二维表,每一行都可以看作是一条记录,每一列都可以看作是字段。...2)原理说明 split:按照指定规则分组,由groupby实现; apply:针对每个小组,使用函数进行操作,得到结果,由agg()函数实现; combine:将每一组得到的结果,汇总起来,得到最终结果...4)groupby()分组参数的4种形式 使用groupby进行分组时,分组的参数可以是如下的形式: * 单字段分组:根据df中的某个字段进行分组。...* 多字段分组:根据df中的多个字段进行联合分组。 * 字典或Series:key指定索引,value指定分组依据,即value值相等的记录,会分为一组。...② 多字段分组:根据df中的多个字段进行联合分组。

    2.9K10

    Pandas常用的数据处理方法

    本文的Pandas知识点包括: 1、合并数据集 2、重塑和轴向旋转 3、数据转换 4、数据聚合 1、合并数据集 Pandas中合并数据集有多种方式,这里我们来逐一介绍 1.1 数据库风格合并 数据库风格的合并指根据索引或某一列的值是否相等进行合并的方式...上面两个表有两列重复的列,如果只根据一列进行合并,则会多出一列重复列,重复列名的处理我们一般使用merge的suffixes属性,可以帮我们指定重复列合并后的列名: pd.merge(left,right...,比如下面的例子将均匀分布的数据分为四组: data = np.random.rand(20) pd.cut(data,4,precision=2) pandas还提供了一个对数据进行划分的函数:qcut...你可能已经注意到了,在执行df.groupby('key1').mean()的结果中,结果并没有key2这一列,这是因为key2这一列不是数值数据,所以从结果中排除了,默认情况下,所有的数值列都会被聚合...4.3 数据透视表 透视表是各种电子表格程序和其他数据分析软件中一种常见的数据汇总工具,它根据一个或多个键对数据进行聚合,并根据行和列伤的分组键将数据分配到各个矩形区域中。

    8.4K90

    Pandas使用DataFrame进行数据分析比赛进阶之路(一)

    这篇文章中使用的数据集是一个足球球员各项技能及其身价的csv表,包含了60多个字段。数据集下载链接:数据集 1、DataFrame.info() 这个函数可以输出读入表格的一些具体信息。...)) # 这两个方法是等价的 print(data[data.lw > data.cf]) # 这两个方法是等价的 3、DataFrame.value_counts() 这个函数可以统计某一列中不同值出现的频率...7155 High 2762 Low 524 Name: work_rate_att, dtype: int64 4、DataFrame.sort_values() 按照某一列的数值进行排序后输出...(data.sort_values(['sho']).head(5)) 5、DataFrame.groupby() 根据国籍(nationality)这一列的属性进行分组,然后分别计算相同国籍的潜力(potential...72 72 101 67 67 155 72 72 163 71 71 7、DataFrame.apply() 将某一个函数应用到某一列或者某一行上

    2K80

    对比MySQL学习Pandas的groupby分组聚合

    对于一个二维表,每一行都可以看作是一条记录,每一列都可以看作是字段。...2)原理说明 split:按照指定规则分组,由groupby实现; apply:针对每个小组,使用函数进行操作,得到结果,由agg()函数实现; combine:将每一组得到的结果,汇总起来,得到最终结果...4)groupby()分组参数的4种形式 使用groupby进行分组时,分组的参数可以是如下的形式: * 单字段分组:根据df中的某个字段进行分组。...* 多字段分组:根据df中的多个字段进行联合分组。 * 字典或Series:key指定索引,value指定分组依据,即value值相等的记录,会分为一组。...② 多字段分组:根据df中的多个字段进行联合分组。

    3.2K10

    【Python】这25个Pandas高频实用技巧,不得不服!

    float64 col_three object dtype: object 但是,如果你对第三列也使用这个函数,将会引起错误,这是因为这一列包含了破折号(用来表示0)但是pandas...我们再复制另外一个数据至剪贴板: df = pd.read_clipboard() df 神奇的是,pandas已经将第一列作为索引了: df.index Index(['Alice', 'Bob...将DataFrame划分为两个随机的子集 假设你想要将一个DataFrame划分为两部分,随机地将75%的行给一个DataFrame,剩下的25%的行给另一个DataFrame。...为了对多个函数进行聚合,你可以使用agg()函数,传给它一个函数列表,比如sum()和count(): orders.groupby('order_id').item_price.agg(['sum',...它会返回一个互动的HTML报告: 第一部分为该数据集的总览,以及该数据集可能出现的问题列表; 第二部分为每一列的总结。

    6.6K50

    Pandas之实用手册

    :使用数字选择一行或多行:也可以使用列标签和行号来选择表的任何区域loc:1.3 过滤使用特定值轻松过滤行。...例如,按流派对数据集进行分组,看看每种流派有多少听众和剧目:Pandas 将两个“爵士乐”行组合为一行,由于使用了sum()聚合,因此它将两位爵士乐艺术家的听众和演奏加在一起,并在合并的爵士乐列中显示总和...groupby()折叠数据集并从中发现见解。聚合是也是统计的基本工具之一。除了 sum(),pandas 还提供了多种聚合函数,包括mean()计算平均值、min()、max()和多个其他函数。...通过告诉 Pandas 将一列除以另一列,它识别到我们想要做的就是分别划分各个值(即每行的“Plays”值除以该行的“Listeners”值)。...row of “svd” is applied to a different DataFrame rowdataset['Norm']=svds根据某一列排序"""sort by value in a

    22410

    掌握pandas中的transform

    中,transform是一类非常实用的方法,通过它我们可以很方便地将某个或某些函数处理过程(非聚合)作用在传入数据的每一列上,从而返回与输入数据形状一致的运算结果。...本文就将带大家掌握pandas中关于transform的一些常用使用方式。...图1 2 pandas中的transform 在pandas中transform根据作用对象和场景的不同,主要可分为以下几种: 2.1 transform作用于Series 当transform作用于单列...transform(lambda s: (s - s.mean()) / s.std()) 图6 2.2 transform作用于DataFrame 当transform作用于整个DataFrame时,实际上就是将传入的所有变换函数作用到每一列中...'body_mass_g'] .transform([np.log, lambda s: s+1]) ) 图8 而且由于作用的是DataFrame,还可以利用字典以键值对的形式,一口气为每一列配置单个或多个变换函数

    1.6K20

    python数据分析——数据分类汇总与统计

    第一个阶段,pandas对象中的数据会根据你所提供的一个或多个键被拆分(split)为多组。拆分操作是在对象的特定轴上执行的。...下面是一些常见的使用Groupby的操作: 分组操作:通过指定一个或多个列名,将数据集分成不同的组。例如,可以将一个销售数据集按照不同的产品进行分组。...按列分组 按列分组分为以下三种模式: df.groupby(col),返回一个按列进行分组的groupby对象; df.groupby([col1,col2]),返回一个按多列进行分组的groupby...使用read_csv导入数据之后,我们添加了一个小费百分比的列tip_pct: 如果希望对不同的列使用不同的聚合函数,或一次应用多个函数,将通过下面的例来进行展示。...具体的办法是向agg传入一个从列名映射到函数的字典: 只有将多个函数应用到至少一列时,DataFrame才会拥有层次化的列 返回不含行索引的聚合数据 到目前为止,所有例中的聚合数据都有由唯一的分组键组成的索引

    7810

    (数据科学学习手札97)掌握pandas中的transform

    是一类非常实用的方法,通过它我们可以很方便地将某个或某些函数处理过程(非聚合)作用在传入数据的每一列上,从而返回与输入数据形状一致的运算结果。   ...本文就将带大家掌握pandas中关于transform的一些常用使用方式。 ?...图1 2 pandas中的transform   在pandas中transform根据作用对象和场景的不同,主要可分为以下几种: 2.1 transform作用于Series   当transform...图6 2.2 transform作用于DataFrame   当transform作用于整个DataFrame时,实际上就是将传入的所有变换函数作用到每一列中: # 分别对每列进行标准化 ( penguins...图8   而且由于作用的是DataFrame,还可以利用字典以键值对的形式,一口气为每一列配置单个或多个变换函数: # 根据字典为不同的列配置不同的变换函数 ( penguins .loc

    1.1K30
    领券