对数据接受分组统计主要建议使用dataframe函数,其功能::
参照变量的条件将数据拆分成组。
每个组都可另应用函数(如sum、mean、std等)。
将结果不合并到一个数据结果中。
语法::
(bynone,axis0,levelnone,like_indextrue,sorttrue,group_keystrue,squeezefalse,observedfalse)#34#34#34by:字典,映射,series对象,数组,标签,列表。假如he是一个函数,则对象索引的每个值动态创建它;如果没有传达消息了一个字典也可以series对象,则可以使用该字典的或series对象来判断组。假如传达消息了数组ndarray,则按照原样式来判断这些组。axis:axis1来表示行;axis0来表示列,默认值为0level:表示索引层级,设置成为无such_index:布尔类型,默认为true,直接返回组标签为索引的对象sort:对组并且排序,布尔类型,设置成为truegroup_keys:布尔类型,系统默认为true,内部函数apply函数时,将分组键再添加到索引以标识片段squeeze:布尔类型,设置为为false,要是很可能,增加回类型的维度,否则直接返回一致类型返回值:dataframegroupby,回包涵关联组的信息的groupby对象
当我们在用python并且数据分析时,经常会可能必须参照dataframe其他列中的值向pandasdataframe先添加一列。
即便这比较顺耳很简单的,但是如果我们试图可以使用if-arguments条件语句来做,可能会会变的些古怪。不过幸好,有一种建议使用numpy可以做到对此的简单啊,好方法!
要学习使用方法它,我们来看一个特定的事件的数据分析问题。我们强大4,000多个aaa教育推文的数据集。附有图像的推文会完成任务更多的赞和转发吗?让我们做一些分析判断答案!
我们将从导入pandas和numpy结束,并程序加载数据集以栏里点其外观。
发现我们的数据集包涵或者每个推文的一些信息,以及:
1)date—推文查找的日期
2)time—发推文的时间
3)tweet-该推文的求实际文本
4)mentions-推文中提到的任何其他twitter用户
5)photos—推文中真包含的任何图像的url
6)replies_count-在推文上的回复数量
7)retweets_count-推文的转发数
8)likes_count—在推文上的比较喜欢次数
我们还也可以看见photos数据的格式些很奇怪。
不使用np.where()直接添加本身正确/错误条件的pandas列
相对于我们的分析,我们只想查看带图像的推文是否需要我得到更多的交互,因此我们虽然不是需要图像url。让我们一段时间创建角色一个名为的新列hasimage,该列将真包含布尔值-true假如该tweet包涵图像,false则不含运费图像。
而,我们将不使用numpy的内置where()函数。此函数按顺序接受三个参数:我们要测量的条件,条件为true时怎么分配给新列的值和条件为false时怎么分配给新列的值。看起来像这样:
在我们的数据中,找到了没有图像的推文一直[]在该photos列中本身值。我们可以不在用信息并np.where()修改新列hasimage,追加所示:
在上方,找到了我们的新列已添加到我们的数据集,并且已错误的标签了tweet,3个坦克师图像为true,其他图像为false。
现在我们有了hasimage专栏,让我们快速怎么制作几个新的dataframe,一个主要用于所有图像推文,一个主要用于所有无图像推文。我们将可以使用布尔过滤器进行此操作:
现在,我们巳经创建了那些,我们是可以可以使用内置的数学函数.mean()来急速比较好每个dataframe中的推文。
我们将不使用print()语句使结果更易被阅读。我们还要记得一点使用str()来将.suppose()换算结果转换为字符串,希望能够可以不在我们的可以打印语句中建议使用它:
依据这些结果,很显然以及图像很可能会促进aaa教育的一些社群媒体的交互。有图片的推文的换算下来赞和转发消息次数是没有图片的推文的三倍。
先添加条件更古怪的pandas专栏
这种方法效果非常好,但要是我们想去添加一个条件更奇怪的新列(超出true和false的条件)该怎么办?
或者,目的是更进入到地想研究这个问题,我们很可能要创建家族一些交互性“层”,并评估可到达每个层的推文所占的百分比。就是为了简单点起见,让我们可以使用likes来衡量交互性,并将tweet两类四个层次:
1)tier_4-2个或更少的不喜欢
2)tier_3—3-9个赞
3)tier_2—10-15个赞
4)tier_1—16个赞
为此,我们可以可以使用称作的函数()。我们给它两个参数:一个条件列表,以及一个我们想要怎么分配给新列中每一行的值的对应列表。
这意味着顺序很有用:如果没有conditions满足列表中的第一个条件,则列表中的第一个值values将未分配给重庆农商行的新列。大数据分析可以使用numpy在pandasdataframe上去添加列如果没有行最简形矩阵第二个条件,则将分配第二个值,等等。
让我们看一下它在python代码中的外观:
太棒了!我们创建战队了那个新列,该列参照我们的(确实都有点轻率)层你的排名系统对每个tweet通过了分类。
现在,我们可以不可以使用它来解释或者我们的数据集的更多问题。比如:1级和4级推文中有多少百分比具高图像?
在这里,发现但他图像很显然所帮助,但它们倒是并不是成功了所必须的。
但他这是一个更加肤浅的总结,但我们巳经在这里实现了我们的能够目标:依据或者保证列中值的条件语句向pandasdataframes再添加列。
当然,这是是可以以多种能够完成的任务。np.where()而()只不过是许多潜在目标的两种方法。