标签:Python与Excel,pandas 删除列也是Excel中的常用操作之一,可以通过功能区或者快捷菜单中的命令或者快捷键来实现。...上一篇文章,我们讲解了Python pandas删除数据框架中行的一些方法,删除列与之类似。然而,这里想介绍一些新方法。取决于实际情况,正确地使用一种方法可能比另一种更好。...准备数据框架 创建用于演示删除列的数据框架,仍然使用前面给出的“用户.xlsx”中的数据。 图1 .drop()方法 与删除行类似,我们也可以使用.drop()删除列。...如果要覆盖原始数据框架,则要包含参数inplace=True。 图2 del方法 del是Python中的一个关键字,可用于删除对象。我们可以使用它从数据框架中删除列。...实际上我们没有删除,而是创建了一个新的数据框架,其中只包含用户姓名、城市和性别,有效地“删除”了其他两列。然后,我们将新创建的数据框架赋值给原始数据框架以完成“删除操作”。注意代码中的双方括号。
在Python中,数据存储在计算机内存中(即,用户不能直接看到),幸运的是pandas库提供了获取值、行和列的简单方法。 先准备一个数据框架,这样我们就有一些要处理的东西了。...df.columns 提供列(标题)名称的列表。 df.shape 显示数据框架的维度,在本例中为4行5列。 图3 使用pandas获取列 有几种方法可以在pandas中获取列。...语法如下: df.loc[行,列] 其中,列是可选的,如果留空,我们可以得到整行。由于Python使用基于0的索引,因此df.loc[0]返回数据框架的第一行。...在pandas中,这类似于如何索引/切片Python列表。 要获取前三行,可以执行以下操作: 图8 使用pandas获取单元格值 要获取单个单元格值,我们需要使用行和列的交集。...想想如何在Excel中引用单元格,例如单元格“C10”或单元格区域“C10:E20”。以下两种方法都遵循这种行和列的思想。 方括号表示法 使用方括号表示法,语法如下:df[列名][行索引]。
Pandas是一个用于数据操作和分析的Python库。它建立在 numpy 库之上,提供数据帧的有效实现。数据帧是一种二维数据结构。在数据帧中,数据以表格形式在行和列中对齐。...它类似于电子表格或SQL表或R中的data.frame。最常用的熊猫对象是数据帧。大多数情况下,数据是从其他数据源(如csv,excel,SQL等)导入到pandas数据帧中的。...在本教程中,我们将学习如何创建一个空数据帧,以及如何在 Pandas 中向其追加行和列。...Pandas.Series 方法可用于从列表创建系列。列值也可以作为列表传递,而无需使用 Series 方法。 例 1 在此示例中,我们创建了一个空数据帧。...我们还了解了一些 Pandas 方法、它们的语法以及它们接受的参数。这种学习对于那些开始使用 Python 中的 Pandas 库对数据帧进行操作的人来说非常有帮助。
默认情况下,它们返回沿轴axis=0的系列,这意味着可以获得列的统计信息: 如果需要每行的统计信息,使用axis参数: 默认情况下,缺失值不包括在描述性统计信息(如sum或mean)中,这与Excel...在数据框架的所有行中获取统计信息有时不够好,你需要更细粒度的信息,例如,每个类别的均值,这是下面的内容。 分组 再次使用我们的示例数据框架df,让我们找出每个大陆的平均分数。...下面的数据框架中的数据的组织方式与数据库中记录的典型存储方式类似,每行显示特定地区指定水果的销售交易: 要创建数据透视表,将数据框架作为第一个参数提供给pivot_table函数。...最后,margins与Excel中的总计(GrandTotal)相对应,即如果不使用margins和margins_name方式,则Total列和行将不会显示: 总之,数据透视意味着获取列(在本例中为...这使得跨感兴趣的维度读取摘要信息变得容易。在我们的数据透视表中,会立即看到,在北部地区没有苹果销售,而在南部地区,大部分收入来自橙子。如果要反过来将列标题转换为单个列的值,使用melt。
datetime_is_numeric参数还可以帮助pandas理解我们使用的是datetime类型的数据。 图2 添加更多信息到我们的数据中 继续为我们的交易增加两列:天数和月份。...图3 实际上,我们可以使用groupby对象的.agg()方法将上述两行代码组合成一行,只需将字典传递到agg()。字典键是我们要处理的数据列,字典值(可以是单个值或列表)是我们要执行的操作。...完整的输出太长,所以这里只显示其中一些: 图10 注意到这个项目周围的括号了吗?它看起来像一个包含文本和数据框架的元组……让我们通过打印GroupBy对象中每个项目的类型来确认这一点。...在元组中,第一个元素是类别名称,第二个元素是属于特定类别的子集数据。因此,这是拆分步骤。 我们也可以使用内置属性或方法访问拆分的数据集,而不是对其进行迭代。...图16 图17 合并结果 最后,合并步骤很容易从我们上面获得的结果中可视化,它基本上将结果放回数据框架中,并以更有意义的方式显示,就像图17中的结果一样。
数据预处理一直机器学习项目中最耗时间的工作,我们常常会遇到一些非数值数据,比如城市建筑物的商用类别、餐馆的菜系类别、手机中app的用途类别等等,这些数据并没有数值含义,无大小之分,仅仅是分类不同。...那么在机器学习中,需要对这些数据做处理,这次的内容就是数据预处理中的类别数据的转换。 01 什么是类别数据 什么是类别数据呢?类别数据是有分类特征的数据,相对应的是数值数据。...以下用电影数据集为例说明: 利用Pandas写的DataFrame数据框 标称特征和有序特征 类别数据特征又可分为标称特征和有序特征。...标称特征只代表类别,数据无序,如电影数据集中的类型、地区特征,爱情和动作是无法做比较的。 有序特征的数据是用于分类且有序的,如电影数据集中的评星,显然5高于4,3高于2,可以比较。...,0代表否,1代表是 还可以用pandas(神器)中的get_dummies方法实现独热编码技术,该方法只对字符串列进行转换,数值列保持不变。
与Excel中的筛选类似,我们还可以在数据框架上应用筛选,唯一的区别是Python pandas中的筛选功能更强大、效率更高。...fr=aladdin')[1] 按单个条件筛选数据框架 从世界500强列表中选择中公司,我们可以使用.loc[]来实现。注意,这里使用的是方括号而不是括号()。...如果不需要新数据框架中的所有列,只需将所需的列名传递到.loc[]中即可。例如,仅需要选择最新排名、公司名称和营业收入,我们可以执行以下操作。注意,它只返回我们指定的3列。...上面的代码行创建了一个列表,该列表的长度与数据框架本身相同,并用True或False填充。这基本上就是我们在Excel中所做的。...在现实生活中,我们经常需要根据多个条件进行筛选,接下来,我们将介绍如何在pandas中进行一些高级筛选。
而真实世界的数据中有重复项,即使在应该是唯一的字段中也是如此。 本节描述了重复标签如何改变某些操作的行为,以及如何在操作过程中防止重复项的出现,或者在出现重复项时如何检测它们。...如上所述,在读取原始数据时处理重复项是一个重要的功能。也就是说,您可能希望避免在数据处理管道中引入重复项(从方法如pandas.concat()、rename()等)。...如上所述,在读取原始数据时处理重复是一个重要功能。也就是说,您可能希望避免在数据处理流水线中引入重复(从方法如pandas.concat(),rename()等)。...categories参数是可选的,这意味着在创建pandas.Categorical时,实际的类别应该从数据中存在的内容中推断出来。默认情况下,假定类别是无序的。...categories参数是可选的,这意味着实际的类别应该从创建pandas.Categorical时数据中推断出。默认情况下,假定类别是无序的。
在这个最终版本中,让我们在这里调整一些显示,因为像“gdpPercap” 这样的文本有点难看,即使它是我们的数据框列的名称。...通过这些,你可以在单个图中可视化整个数据集以进行数据探索。在你的Jupyter 笔记本中查看这些单行及其启用的交互: ?...并行类别是并行坐标的分类模拟:使用它们可视化数据集中多组类别之间的关系。...甚至是 动画帧到数据框(dataframe)中的列。...这种方法的强大之处在于它以相同的方式处理所有可视化变量:你可以将数据框列映射到颜色,然后通过更改参数来改变你的想法并将其映射到大小或进行行分面(facet-row)。
在这个最终版本中,让我们在这里调整一些显示,因为像“gdpPercap” 这样的文本有点难看,即使它是我们的数据框列的名称。...通过这些,您可以在单个图中可视化整个数据集以进行数据探索。 在你的Jupyter 笔记本中查看这些单行及其启用的交互: ?...并行类别是并行坐标的分类模拟:使用它们可视化数据集中多组类别之间的关系。...甚至是 动画帧到数据框(dataframe)中的列。...这种方法的强大之处在于它以相同的方式处理所有可视化变量:您可以将数据框列映射到颜色,然后通过更改参数来改变您的想法并将其映射到大小或进行行分面(facet-row)。
在这个最终版本中,让我们在这里调整一些显示,因为像“gdpPercap” 这样的文本有点难看,即使它是我们的数据框列的名称。...dataframe 中的每一行都是一行。 您可以拖动尺寸以重新排序它们并选择值范围之间的交叉点。 image.png 并行类别是并行坐标的分类模拟:使用它们可视化数据集中多组类别之间的关系。...每个 Plotly Express 函数都体现了dataframe 中行与单个或分组标记的清晰映射,并具有图形启发的语法签名,可让您直接映射这些标记的变量,如 x 或 y 位置、颜色、大小、 facet-column...甚至是 动画帧到数据框(dataframe)中的列。...这种方法的强大之处在于它以相同的方式处理所有可视化变量:您可以将数据框列映射到颜色,然后通过更改参数来改变您的想法并将其映射到大小或进行行分面(facet-row)。
除非另有指明,否则文件将保存在运行环境下的相同位置。 df.to_csv? 我们将使用的唯一参数是索引和标头。将这些参数设置为False将阻止导出索引和标头名称。...[Names,Births]可以作为列标题,类似于Excel电子表格或sql数据库中的列标题。...Out[1]: dtype('int64') 如您所见,Births列的类型为int64,因此此列中不会出现浮点数(十进制数字)或字母数字字符。...在这里,我们可以绘制出生者列并标记图表以向最终用户显示图表上的最高点。...与该表一起,最终用户清楚地了解Mel是数据集中最受欢迎的婴儿名称。plot()是一个方便的属性,pandas可以让您轻松地在数据框中绘制数据。我们学习了如何在上一节中找到Births列的最大值。
中的query实现的正是对标SQL中的where语法,在实现链式筛选查询中非常好用,具体可参考Pandas用了一年,这3个函数是我的最爱…… where语句,Pandas以API丰富而著称,所以自然是不会放过...where关键字的,不过遗憾的是Pandas中的where和Numpy中的where一样,都是用于对所有列的所有元素执行相同的逻辑判断,可定制性较差。...但在具体使用中,where也支持两种语法形式,一种是以字符串形式传入一个类SQL的条件表达式,类似于Pandas中query;另一种是显示的以各列对象执行逻辑判断,得到一组布尔结果,类似于Pandas中...接apply,实现更为定制化的函数功能,参考Pandas中的这3个函数,没想到竟成了我数据处理的主力 Spark:Spark中的groupBy操作,常用的包括如下3类: 直接接聚合函数,如sum、avg...03 小节 对标SQL标准查询语句中的常用关键字,重点对Pandas和Spark中相应操作进行了介绍,总体来看,两个计算框架均可实现SQL中的所有操作,但Pandas实现的接口更为丰富,传参更为灵活;而
刚才的例子中,我们瞎掰的数据部脱发TGI指数是250,远远高于100,看来搞数据的脱发风险极高,数据才是真正的发际线推手。 下面,我们通过一个案例来巩固概念理解,顺便和潘大师(Pandas)过过招。...单个用户打标 第一步,我们先判断每个用户是否属于高客单的人群,所以先按用户昵称进行分组,看每位用户的平均支付金额。这里用平均,是因为有的客户多次购买,而每次下单金额也不一样,故平均之。 ?...接着,定义一个判断函数,如果单个用户平均支付金额大于50,就打上“高客单”的类别,否则为低客单,再用apply函数调用: ? 到这里基于高低客单的用户初步打标已经完成。...如果用EXCEL的数据透视表处理起来就很简单,直接把省份和城市拖拽到行的位置,客单类别拖到列的位置,值随便选一个字段,只要是统计就好。...接着统计总人数中,高客单人群的比例,来对标公式中的分母“总体中具有相同特征的群体所占比例”: ? 最后一步,就是TGI指数的计算,顺便排个序: ?
数据包含在links.csv,movies.csv,ratings.csv和tags.csv文件中。有关所有这些文件的内容和用法的更多详细信息如下。 这是一个发展的数据集。...如果电影标题或标签值中的重音字符(例如Misérables,Les(1995))显示不正确,确保读取数据的任何程序(如文本编辑器,终端或脚本)都配置为UTF-8。...他们的ID已经匿名化了。用户ID在ratings.csv和tags.csv之间是一致的(即,相同的id指的是两个文件中的同一用户)。 电影Ids 数据集中仅包含至少具有一个评级或标记的电影。...可用pandas.merge 将所有数据都合并到一个表中。...列的数据,行标index为电影名称,列标为性别,aggfunc参数为函数或函数列表(默认为numpy.mean),其中“columns”提供了一种额外的方法来分割数据。
由此我们可以进一步了解我们应该如何减少内存占用,下面我们来看一看pandas如何在内存中存储数据。...下图所示为pandas如何存储我们数据表的前十二列: 可以注意到,这些数据块没有保持对列名的引用,这是由于为了存储dataframe中的真实数据,这些数据块都经过了优化。...由于pandas使用相同数量的字节来表示同一类型的每一个值,并且numpy数组存储了这些值的数量,所以pandas能够快速准确地返回数值型列所消耗的字节量。...选用类别(categoricalas)类型优化object类型 Pandas在0.15版本中引入类别类型。category类型在底层使用整型数值来表示该列的值,而不是用原值。...总结 我们学习了pandas如何存储不同的数据类型,并利用学到的知识将我们的pandas dataframe的内存用量降低了近90%,仅仅只用了一点简单的技巧: 将数值型列降级到更高效的类型 将字符串列转换为类别类型
,并带有单个标题行。...如果电影标题或标签值中的重音字符(例如Misérables,Les(1995))显示不正确,确保读取数据的任何程序(如文本编辑器,终端或脚本)都配置为UTF-8。...他们的ID已经匿名化了。用户ID在ratings.csv和tags.csv之间是一致的(即,相同的id指的是两个文件中的同一用户)。...可用pandas.merge 将所有数据都合并到一个表中。...,输出内容为rating列的数据,行标index为电影名称,列标为性别,aggfunc参数为函数或函数列表(默认为numpy.mean),其中“columns”提供了一种额外的方法来分割数据。
之所以给其单独列出一个篇幅进行讲解,除了其在数据结构中的特殊地位之外,在数据可视化和数据分析与建模过程中,因子变量往往也承担中描述某一事物重要维度特征的作用,其意义非同寻常,无论是在数据处理过程中还是后期的分析与建模...通常意义上,按照其所描述的维度实际意义,因子变量一般又可细分为无序因子(类别之间没有特定顺序,水平相等)和有序因子(类别中间存在某种约定俗成的顺序,如年龄段、职称、学历、体重等)。...),labels作为因子标签(可选参数,与前述因子水平对应,若设置,则打印时显示的是对应因子标签,省略则同因子水平一样,使用向量中不重复值【即类别】作为标签),ordered是逻辑参数,设定是否对因子水平排序...无论是序列中还是数据框中的因子变量生成之后,都可以通过以下属性查看其具体的类型、因子类别、以及是否含有顺序。...,pandas的数据框也有与R语言同名的函数——cut。
(data_cleaned.head())高级数据分析除了基本的数据分析和处理,Pandas还支持高级数据操作,如分组、合并和透视表。...下面是一个示例,展示如何使用Pandas进行数据分组和聚合:# 按类别分组并计算平均值grouped_data = data.groupby('category').mean()# 显示分组后的数据print...Pandas支持将数据导出到各种格式,如CSV、Excel等。...接着,对清洗后的数据按产品类别进行分组,并计算了每个类别的总销售额。最后,使用Matplotlib创建了一个柱状图展示了不同产品类别的总销售额,并将处理后的数据导出到了一个新的CSV文件中。...随后,我们展示了如何在Jupyter Notebook中结合Pandas进行交互式分析,以及如何利用Matplotlib和Seaborn等库进行数据可视化。
领取专属 10元无门槛券
手把手带您无忧上云