中,这些数据按照某一列的取值可能可以划分为不同的组。例如,在这一列上, 在这个DataFrame上有6行,它的不同取值分别为A、B、C。这里的三个不同 取值分别有两行。所以,我们将数据按照某种标准划分组,然后对这些组分别进 行处理。例如,把函数分别作用到这些组上。 A A B 分组之后,我们可以将函数作用到它们之上。例如,我们要计算它们的总和 或者是平均值,这样就分别得到了每个组处理之后的结果,然后将这些结果再组 合到一起,形成了一个单一的数据结构,这就是分组操作的含义。举个例子,如 果我们想要处理多个城市的平均降雨量,那么我们就需要写这样的一个代码: import numpy as np import pandas as pd Create a Data Frame and Display CountryList-['Irag','china','USA','china','USA','Iraq','USA','USA'] B1aa=np.array([2.24,25,47.2,87,15,3.5,34,40]) df pd.DataFrame(('city':CityList ,'Country':CountryList,'RainFall 'RainNumpyArray)) df.head(8) city Country RainFall 0 Baghdad Iraq 2.24 1 Beijing China 25.00 2 New York USA 4720 3 Hong Kong China 87.00 4 Los Angeles USA 15.00 5Karbala Irag 3.50 6Chicago USA 34.00 USA 40.00 首先,我们导入numpy和pandas这两个包。其次,我们创建相应的Iist。 第一个list是CityList,.对应的是8个不同的城市;第二个Iist是CountryList,.对
中,这些数据按照某一列的取值可能可以划分为不同的组。例如,在这一列上, 在这个 Da瀇aF瀅a瀀e 上有 6 行,它的不同取值分别为 A、B、C。这里的三个不同 取值分别有两行。所以,我们将数据按照某种标准划分组,然后对这些组分别进 行处理。例如,把函数分别作用到这些组上。 分组之后,我们可以将函数作用到它们之上。例如,我们要计算它们的总和 或者是平均值,这样就分别得到了每个组处理之后的结果,然后将这些结果再组 合到一起,形成了一个单一的数据结构,这就是分组操作的含义。举个例子,如 果我们想要处理多个城市的平均降雨量,那么我们就需要写这样的一个代码: 首先,我们导入 瀁瀈瀀瀃瀌 和 瀃a瀁da瀆 这两个包。其次,我们创建相应的 濿i瀆瀇。 第一个 濿i瀆瀇 是 Ci瀇瀌Li瀆瀇,对应的是 8 个不同的城市;第二个 濿i瀆瀇 是 C瀂瀈瀁瀇瀅瀌Li瀆瀇,对
应的这些城市所属的国家。这8个城市来自于三个国家,其中2个是伊拉克的, 2个是中国的,4个是美国的。所以在CountryList中是有重复元素的。紧接着, 我们用numpy创建了一个array,这个array对应的就是这8个城市的平均降雨 量。然后,我们用这三个list作为3列创建了一个DataFrame。我们可以通过 DataFrame上的head的方法读取其前若干行的内容。 我们应该如何分组呢?实际上,我们是希望通过一个国家的主要城市的平均 降雨量来计算一个国家的平均降雨量。很显然,我们应该用国家来进行分组。我 们在DataFrame上调用groupby方法,对国家进行分组,并且在分组后在每一 组上求平均值。于是,我们就得到了下面的结果,其中中国的平均降雨量是56, 伊拉克是2.87,美国是34.05。 df.groupby(['Country'],as_index=False).mean() Country RainFall 0China 56.00 1lraq 2.87 2USA 34.05 那这个具体的操作过程是什么样子呢?首先,我们按照Country来执行分组, groupby会按照Country来进行迭代。第一个是伊拉克,它会找到其他的伊拉克 城市;然后,第二组是北京,是中国的城市,所以它会找到其他的中国城市,以 此类推,美国的四个城市被找了出来
应的这些城市所属的国家。这 8 个城市来自于三个国家,其中 2 个是伊拉克的, 2 个是中国的,4 个是美国的。所以在 C瀂瀈瀁瀇瀅瀌Li瀆瀇 中是有重复元素的。紧接着, 我们用 瀁瀈瀀瀃瀌 创建了一个 a瀅瀅a瀌,这个 a瀅瀅a瀌 对应的就是这 8 个城市的平均降雨 量。然后,我们用这三个 濿i瀆瀇 作为 3 列创建了一个 Da瀇aF瀅a瀀e。我们可以通过 Da瀇aF瀅a瀀e 上的 head 的方法读取其前若干行的内容。 我们应该如何分组呢?实际上,我们是希望通过一个国家的主要城市的平均 降雨量来计算一个国家的平均降雨量。很显然,我们应该用国家来进行分组。我 们在 Da瀇aF瀅a瀀e 上调用 g瀅瀂瀈瀃b瀌 方法,对国家进行分组,并且在分组后在每一 组上求平均值。于是,我们就得到了下面的结果,其中中国的平均降雨量是 56, 伊拉克是 2.87,美国是 34.05。 那这个具体的操作过程是什么样子呢?首先,我们按照 C瀂瀈瀁瀇瀅瀌 来执行分组, g瀅瀂瀈瀃b瀌 会按照 C瀂瀈瀁瀇瀅瀌 来进行迭代。第一个是伊拉克,它会找到其他的伊拉克 城市;然后,第二组是北京,是中国的城市,所以它会找到其他的中国城市,以 此类推,美国的四个城市被找了出来
df.groupby(['Country'],as index=False) City Country Rain Fall (inch) Baghdad Iraq 2.24 Beijing China 25 New York USA 47.2 Hong Kong China 87 Los Angeles USA 15 Karbala Iraq 3.5 Chicago USA 34 Seattle USA 40 数据分类之后,我们希望在上面求平均值,于是,会依次把每一组拿出来计 算平均值。例如,中国两个城市的平均值计算之后为56,于是,得到了最终结果 当中的第一行中国56。紧接着,计算伊拉克的平均降雨量是2.87,这个结果插 入到结果集当中的第二行中。最后是美国的四个城市的平均降雨量,计算出来之 后是34.5,这个结果被插入到结果集当中的第三行。最终,这个结果集返回给了 用户。 City Country Rain Fall (inch) Baghdad lraq 2.24 Beijing China 25 Country Mean Rain Fall New York USA 47.2 China 56 Hong Kong China 87 Irag 2.87 Los Angeles USA 15 USA 34.5 Karbala Irag 3.5 Chicago USA 34 Seattle USA 40 三、DataFrame-合并 接下来让我们看看第三种操作:合并。合并是指基于某一列将来自不同的 DataFrame的列合并起来。例如,我们现在有两个DataFrame,第一个DataFrame 包含三列A、B、C,第二个DataFrame包含三列A、D、E。它们只有一个公共 的列A,并且它们的取值都是1、2、3。我们想在A这一列上把两个不同的
数据分类之后,我们希望在上面求平均值,于是,会依次把每一组拿出来计 算平均值。例如,中国两个城市的平均值计算之后为 56,于是,得到了最终结果 当中的第一行中国 56。紧接着,计算伊拉克的平均降雨量是 2.87,这个结果插 入到结果集当中的第二行中。最后是美国的四个城市的平均降雨量,计算出来之 后是 34.5,这个结果被插入到结果集当中的第三行。最终,这个结果集返回给了 用户。 三、Da瀇aF瀅a瀀e – 合并 接下来让我们看看第三种操作:合并。合并是指基于某一列将来自不同的 Da瀇aF瀅a瀀e 的列合并起来。例如,我们现在有两个 Da瀇aF瀅a瀀e,第一个 Da瀇aF瀅a瀀e 包含三列 A、B、C,第二个 Da瀇aF瀅a瀀e 包含三列 A、D、E。它们只有一个公共 的列 A,并且它们的取值都是 1、2、3。我们想在 A 这一列上把两个不同的
DataFrame合并起来,得到一个新的DataFrame,这就是合并操作。 0 我们举一个例子,假设我们有两个DataFrame,第一个是有关学生基础信息 的,包含学生的D、姓和名,第二个包含学生的成绩信息,包含了学生的D以 及英语和数学的等第成绩。我们想把这两个DataFrame合并到一起,创建一个 新的DataFrame。.这个DataFrame包含了学生的ID、姓和名以及数学等第和英 语等第成绩。具体的操作是这样的:首先,我们需要创建第一个DataFrame。我 们创建了一个字典,这个字典里包含三个键值对,这三个键值对分别代表的是id, firstname,lastname。每一个键值对里面的值都包含三个元素,表示三个学生的 信息。然后,我们用这个字典创建了一个DataFrame,这个DataFrame的名字为 dfA。 In [1]:import pandas as pd 1m21: A ID first_name ast_name 01 John Smith 23B6 然后,我们创建第二个DataFrame.它里面也包含了三列,分别是学生的ID 数学等第和英语等第。我们同样通过一个字典来创建了这个DataFrame。这个 DataFrame名为dfB
Da瀇aF瀅a瀀e 合并起来,得到一个新的 Da瀇aF瀅a瀀e,这就是合并操作。 我们举一个例子,假设我们有两个 Da瀇aF瀅a瀀e,第一个是有关学生基础信息 的,包含学生的 ID、姓和名,第二个包含学生的成绩信息,包含了学生的 ID 以 及英语和数学的等第成绩。我们想把这两个 Da瀇aF瀅a瀀e 合并到一起,创建一个 新的 Da瀇aF瀅a瀀e。这个 Da瀇aF瀅a瀀e 包含了学生的 ID、姓和名以及数学等第和英 语等第成绩。具体的操作是这样的:首先,我们需要创建第一个 Da瀇aF瀅a瀀e。我 们创建了一个字典,这个字典里包含三个键值对,这三个键值对分别代表的是 id, fi瀅瀆瀇瀁a瀀e,濿a瀆瀇瀁a瀀e。每一个键值对里面的值都包含三个元素,表示三个学生的 信息。然后,我们用这个字典创建了一个 Da瀇aF瀅a瀀e,这个 Da瀇aF瀅a瀀e 的名字为 dfA。 然后,我们创建第二个 Da瀇aF瀅a瀀e.它里面也包含了三列,分别是学生的 ID, 数学等第和英语等第。我们同样通过一个字典来创建了这个 Da瀇aF瀅a瀀e。这个 Da瀇aF瀅a瀀e 名为 dfB
in【3]: rame (GradeData,column3 OutI3】 ID Math English 12 B 下面让我们开始合并,由于两个DataFrame上面都具有ID这一列,所以我 们实际上是要在学生D这一列上进行数据集的合并,最后合并完的结果应该是 一个DataFrame。 ID first_name last_name ID Math English 01 John Smith 0 1 A B 12 Sara E 23 Bob Aby 23B 下面这条命令就是要把DataFrame A和DataFrame B在ID这一列上进行合 并,调用的是merge,这个函数产生了新的DataFrame赋值给dfNew,所以最 终我们就会得到了这里看到的dfNew这样一个新的DataFrame。 In [4]:dfNew=pd.merge (dfA,dfB,on='ID') dfNew ID Math English 0 1 A B 12BA ID first_name last_name Math English 23 cB 01 John Smith 9 ID first_name last_name 12 Sara Eli 0 1 John 23 Bob Aby Smith 12 sara Eli 23 Bob Aby 四、DataFrame-清洗 下面让我们来看看数据清洗。数据清洗是指剔除掉数据集中不符合要求的数 据,例如,这里我们给出的两个DataFrame中,都包含由红颜色表示的不符合要 求的数据。我们希望通过删除这些不符合要求的数据行或者列,来使得清洗之后 的数据集中只包含符合要求的蓝色数据
下面让我们开始合并,由于两个 Da瀇aF瀅a瀀e 上面都具有 ID 这一列,所以我 们实际上是要在学生 ID 这一列上进行数据集的合并,最后合并完的结果应该是 一个 Da瀇aF瀅a瀀e。 下面这条命令就是要把 Da瀇aF瀅a瀀e A 和 Da瀇aF瀅a瀀e B 在 ID 这一列上进行合 并,调用的是 瀀e瀅ge,这个函数产生了新的 Da瀇aF瀅a瀀e 赋值给 dfNe瀊,所以最 终我们就会得到了这里看到的 dfNe瀊 这样一个新的 Da瀇aF瀅a瀀e。 四、Da瀇aF瀅a瀀e – 清洗 下面让我们来看看数据清洗。数据清洗是指剔除掉数据集中不符合要求的数 据,例如,这里我们给出的两个 Da瀇aF瀅a瀀e 中,都包含由红颜色表示的不符合要 求的数据。我们希望通过删除这些不符合要求的数据行或者列,来使得清洗之后 的数据集中只包含符合要求的蓝色数据