当前位置: 首页 > news >正文

营销单页网站模板宁波谷歌seo推广

营销单页网站模板,宁波谷歌seo推广,青岛网站建设维护,电脑软件下载官方网站目录 1. .groupby() 语法 1.1 .groupby() 语法结构 1.2 .groupby() 参数说明 2. .groupby() 范例 2.1 分组字段:by 2.1.1 单列作为分组字段,不设置索引 2.1.2 单列字段的数据转换一下作为分组字段 2.1.4 以多列作为分组字段 2.1.5 以字典作为分…

目录

1. .groupby() 语法

1.1 .groupby() 语法结构

1.2 .groupby() 参数说明

2. .groupby() 范例

2.1 分组字段:by

2.1.1 单列作为分组字段,不设置索引

2.1.2 单列字段的数据转换一下作为分组字段

2.1.4 以多列作为分组字段

2.1.5 以字典作为分组字段,根据索引对记录进行映射分组

 2.1.6 以Series 作为分组字段,根据索引对记录进行映射分组

 2.1.7 以函数作为分组字段,根据函数对索引的执行结果进行分组

2.2 轴:axis

2.3 级别:level

2.4 是否保留 index 名:as_index

2.5 对组排序:sort

2.6 组键值:group_keys


大家如果用过数据库,肯定对 group by 命令很熟悉,Pandas 的 .groupby() 函数作用和数据库中的 group by 非常相似。它会将 DataFrame 数据根据一定的规则进行分组,返回给用户一个 groupby 对象,这个对象包括了不同组的相关信息。

参考官方给的原文:

其中:

  • split:按照某给定的原则(groupby字段)进行拆分,相同属性分为一组

  • apply:对拆分后的各组执行相应的独立的转换操作

        apply 的概念,可以参考这篇文章:Pandas 模块-操纵数据(6)-DataFrame 使用自定义函数

  • combine:将结果转换成一定的数据结构(汇总功能)并输出

1. .groupby() 语法

1.1 .groupby() 语法结构

DataFrame.groupby(by=None, axis=0, level=None, as_index: 'bool' = True, sort: 'bool' = True, group_keys: 'bool' = True, squeeze: 'bool' = <object object at 0x000002B1AA271230>, observed: 'bool' = False, dropna: 'bool' = True)

DataFrame.groupby 会将 DataFrame 数据根据一定的规则进行分组,返回给用户一个 groupby 对象,这个对象包括了不同组的相关信息。具体的 groupby 操作涉及拆分对象,应用函数并合并结果等。

参考如下:

Help on method groupby in module pandas.core.frame:groupby(by=None, axis=0, level=None, as_index: 'bool' = True, sort: 'bool' = True, group_keys: 'bool' = True, squeeze: 'bool' = <object object at 0x000002B1AA271230>, observed: 'bool' = False, dropna: 'bool' = True) -> 'DataFrameGroupBy' method of pandas.core.frame.DataFrame instanceGroup DataFrame using a mapper or by a Series of columns.A groupby operation involves some combination of splitting theobject, applying a function, and combining the results. This can beused to group large amounts of data and compute operations on thesegroups.Parameters----------by : mapping, function, label, or list of labelsUsed to determine the groups for the groupby.If ``by`` is a function, it's called on each value of the object'sindex. If a dict or Series is passed, the Series or dict VALUESwill be used to determine the groups (the Series' values are firstaligned; see ``.align()`` method). If an ndarray is passed, thevalues are used as-is to determine the groups. A label or list oflabels may be passed to group by the columns in ``self``. Noticethat a tuple is interpreted as a (single) key.axis : {0 or 'index', 1 or 'columns'}, default 0Split along rows (0) or columns (1).level : int, level name, or sequence of such, default NoneIf the axis is a MultiIndex (hierarchical), group by a particularlevel or levels.as_index : bool, default TrueFor aggregated output, return object with group labels as theindex. Only relevant for DataFrame input. as_index=False iseffectively "SQL-style" grouped output.sort : bool, default TrueSort group keys. Get better performance by turning this off.Note this does not influence the order of observations within eachgroup. Groupby preserves the order of rows within each group.group_keys : bool, default TrueWhen calling apply, add group keys to index to identify pieces.squeeze : bool, default FalseReduce the dimensionality of the return type if possible,otherwise return a consistent type... deprecated:: 1.1.0observed : bool, default FalseThis only applies if any of the groupers are Categoricals.If True: only show observed values for categorical groupers.If False: show all values for categorical groupers.dropna : bool, default TrueIf True, and if group keys contain NA values, NA values togetherwith row/column will be dropped.If False, NA values will also be treated as the key in groups.. versionadded:: 1.1.0Returns-------DataFrameGroupByReturns a groupby object that contains information about the groups.

1.2 .groupby() 参数说明

  • by : 可以是映射, 函数, 标签或者标签列表,用于指定 groupby 的组。
         如果 by 是函数,它会按照 index 调用每一个值。
         如果 by 是字典或者 Series ,它们的值将用于决定组(Series 的值会第一个对齐,参看      .align() method)。
         如果 by 是 ndarray,这个值将用于 as-is 以决定分组。
         如果 by 是标签或者标签列表,将会被用于根据相应的列进行分组。
         如果 by 是tuple 元组类型,那么将会被视作一个单独的 key 。
  • axis :可以是  {0 or 'index', 1 or 'columns'}, 默认为 0 。决定是按照行还是列进行切割。
  • level : 可以是 int 数值,level 名称,或者相关的序列。默认为 None。 如果 axis 是一个多级索引,那么可以按照一个特定的 level 或者特定的多级 level 进行分组。
  • as_index : 布尔值,是否将分组列名作为输出的索引,默认为True;当设置为False时相当于加了reset_index功能
  • sort :布尔值,默认为 True。是对组排序的关键。如果想要更好的性能,可以关掉它。请注意,这个并不影响每个组的内在顺序, Groupby 保留每个组中的行顺序。
  • group_keys :布尔值, default True When calling apply, add group keys to index to identify pieces。
  • dropna:True or False ,默认为True,为真则删除含有空值的行和列。

2. .groupby() 范例

准备数据

import  random
random.seed()
df = pd.DataFrame({'str':['a', 'a', 'b', 'b', 'a'],
'no':['one', 'two', 'one', 'two', 'one'],
'data1':np.random.randn(5),
'data2':np.random.randn(5)})
df

  

2.1 分组字段:by

2.1.1 单列作为分组字段,不设置索引

grouped=df.groupby('str')

返回的是一个 DataFrameGroupBy 对象,可以看到其内存。

 通过 list 命令看内容,已经按照 str 列表的数据(a,b)将原始 DataFrame 的内容进行了分组。

得到这个对象只是第一步,我们往往要得到相关信息,如每个组,中位数,最大值等,即 apply 后的结果。

grouped.data1.sum() #每组的 data1 的总和

grouped.data1.max() #每组的 data1 的最大值

 

我们可以利用 for 循环对分好的组进行遍历

for name,group in grouped:print(type(name))print(name)print(type(group))print(group)

此外对 DataFrameGroupBy 对象常用的操作很多,如:

aggregate:Aggregate using one or more operations over the specified axis.

apply :Apply function func group-wise | and combine the results together.

transform :Aggregate using one or more | operations over the specified axis.

 本文篇幅有限,会在后续说,此处不再多说。

2.1.2 单列字段的数据转换一下作为分组字段

例如# 以 no 的长度作为分组依据,因为长度都是3,得到一组

# 以 no 的长度作为分组依据,因为长度都是3,得到一组
grouped=df.groupby(df['no'].str.len())
list(grouped)

 # 以 no 第一个字符作为分组依据

# 以 no 第一个字符作为分组依据,分为 0 组 和 t 组
grouped=df.groupby(df['no'].str[0])
list(grouped)

2.1.4 以多列作为分组字段

例如

# 以 "str","no"o 作为分组依据,分为 4 组
grouped=df.groupby(["str","no"])
list(grouped)

2.1.5 以字典作为分组字段,根据索引对记录进行映射分组

例如

# 使用字典,对 index 进行分类
a_dict={0:"起始",1:"中间",2:"中间",3:"中间",4:"末尾"}
grouped=df.groupby(a_dict)
list(grouped)

 2.1.6 以Series 作为分组字段,根据索引对记录进行映射分组

# 使用 series,对 index 进行分类,结果类似于以字典作为分组字段

# 使用 series,对 index 进行分类
a_dict={0:"起始",1:"中间",2:"中间",3:"中间",4:"末尾"}
a_series=pd.Series(a_dict)
grouped=df.groupby(a_series)
list(grouped)

运行结果

 2.1.7 以函数作为分组字段,根据函数对索引的执行结果进行分组

# 使用函数,对 index 进行分类
grouped=df.groupby(lambda x: True if x%2!=0 else False)
list(grouped)

运行结果

2.2 轴:axis

请看 2.3 level 小节。

2.3 级别:level

准备测试数据

columns=pd.MultiIndex.from_arrays([['China','China','China','Japan','Japan'],["1","2","3","1","2"]],names=['Country','no'])
hier_df=pd.DataFrame(abs(np.random.randn(4,5)*1000),columns=columns)

 默认的 axis=0,即按照行来进行分组,如果 axis =1 即按照列来进行分组,但是什么情况下按列分组呢。往往是对多级别的列表进行分组时候。如下这个范例,有两个列级别,第一个是 Country,第二个 是 no。

按照 level=’Country‘,axis=1 即按照列来分组数据

list(hier_df.groupby(level='Country',axis=1))

 

 按照 level=’no‘,axis=1 即按照列来分组数据

按照 level='no',axis=1 即按照列来分组数据

2.4 是否保留 index 名:as_index

        as_index : 布尔值,是否将分组列名作为输出的索引,默认为 True ;当设置为 False 时相当于加了reset_index功能。

        1) 请注意,as_index 只有在 axis=0 时候有效,否则就会报错。

         2) 请注意,as_index 一般在使用聚合函数时候有体现,用 list 或者 for 循环时候是看不出来差异的。

使用 list 时候查看分组是没有区别的

 如果使用聚合函数就不一样了

2.5 对组排序:sort

        sort :布尔值,默认为 True。是对组排序的关键。如果想要更好的性能,可以关掉它。请注意,这个并不影响每个组的内在顺序, Groupby 保留每个组中的行顺序。

2.6 组键值:group_keys

        group_keys :布尔值, default True When calling apply, add group keys to index to identify pieces。这个后续在讲 groupby.apply 时候再讲。

'''

要是大家觉得写得还行,麻烦点个赞或者收藏吧,想给博客涨涨人气,非常感谢!

'''

http://www.dt0577.cn/news/7928.html

相关文章:

  • 一级a做爰免费网站今日广州新闻头条
  • css做网站企业网站seo多少钱
  • 常见的网站建设技术有哪些如何提升网站seo排名
  • 电商网站建设流程查域名注册详细信息查询
  • 网络推广网站首页大图百度搜索关键词设置
  • 达美网站建设360网站收录
  • 想做网站制作运营注册什么公司核实网络商城应该如何推广
  • 医药医疗行业网站建设网络营销的特点有
  • 网站程序怎么上传seo搜索排名影响因素主要有
  • 聚名网络代做seo排名
  • 政府网站建设应急预案泉州百度首页优化
  • 公司网站模板图片江苏网页定制
  • 怎么做查询网站后台天津seo培训
  • 网站截流做cpa青岛 google seo
  • 免费制作二维码的网站站外推广
  • 如皋做公司网站quark搜索引擎入口
  • 网站公共模板是什么网络营销的推广
  • 如果有域名和空间怎么做网站b2b网站有哪些平台
  • 临淄信息港最新招聘搜索引擎优化的英文
  • 网站开发用户需求分析杭州百度百科
  • 网站做指向是什么意思厦门百度关键词推广
  • 贵阳网站建设钟鼎网络青岛seo网站建设公司
  • iis7 网站用户权限1688关键词怎么优化
  • web前端做一个网页太原seo哪家好
  • 孝感网站制作公司培训学校
  • 大连企业做网站山东公司网站推广优化
  • 网站有图片的验证码是怎么做的互联网运营推广
  • 潍城区建设局网站网站seo是什么
  • 做窗帘网站图片广东宣布即时优化调整
  • 凡科网小程序制作教程西安seo诊断