文章详情

如何将Excel和Python和Pandas结合使用

2020-10-06

点击量:

  如何将Excel和Python和Pandas结合使用?为什么要学习在Python中使用Excel? Excel是最流行和广泛使用的数据工具之一。很难找到一个不以某种方式与之合作的组织。从分析师到销售副总裁,再到首席执行官,各种专业人员都使用Excel进行快速统计和严重的数据处理。
 

  随着Excel的普及,数据专业人员必须熟悉它。与Python的UI相比,使用Python或R处理数据具有明显的优势,因此找到一种使用代码使用Excel的方法至关重要。值得庆幸的是,已经有一个很棒的工具叫做,可以在Python中使用Excel pandas。
 

  Pandas具有从Excel文件读取各种数据的出色方法。您也可以将结果从Pandas导出回Excel,如果您的目标受众更喜欢的话。Pandas非常适合其他常规数据分析任务,例如:
 

  1)快速探索性数据分析(EDA)

  2)绘制有吸引力的地块

  3)将数据输入到scikit-learn等机器学习工具中

  4)在数据上建立机器学习模型

  5)将清理和处理过的数据带入任意数量的数据工具
 

  Pandas在自动化数据处理任务方面比Excel更好,包括处理Excel文件。
 

  在如何将Excel和Python和Pandas结合使用中,我们将向您展示如何使用Pandas中的Excel文件。我们将介绍以下概念。
 

  1)使用必要的软件设置计算机

  2)将数据从Excel文件读入Pandas

  3)Pandas数据探索

  4)使用matplotlib可视化库可视化Pandas中的数据

  5)在Pandas中处理和重塑数据

  6)将数据从Pandas移动到Excel
 

  请注意,如何将Excel和Python和Pandas结合使用并未深入探讨Pandas。要进一步探索Pandas,请查看我们的课程。
 

  系统先决条件
 

  在如何将Excel和Python和Pandas结合使用中,我们将使用Python 3和Jupyter Notebook演示代码。
 

  除了Python和Jupyter Notebook,您还将需要以下Python模块:
 

  1)matplotlib –数据可视化

  2)NumPy –数值数据功能

  3)OpenPyXL –读/写Excel 2010 xlsx / xlsm文件

  4)大Pandas–数据导入,清理,探索和分析

  4)xlrd –读取Excel数据

  5)xlwt –写入Excel

  6)XlsxWriter –写入Excel(xlsx)文件
 

  设置所有模块有多种方法。我们在下面介绍三种最常见的方案。
 

  1)如果通过Anaconda软件包管理器安装了Python ,则可以使用以下命令安装所需的模块conda install。例如,要安装Pandas,您将执行命令– conda install pandas。

  2)如果您已经在计算机上安装了常规的非Anaconda Python,则可以使用来安装所需的模块pip。打开命令行程序并执行命令pip install 以安装模块。您应该用要安装的模块的实际名称替换。例如,要安装Pandas,您将执行命令– pip install pandas。

  3)如果尚未安装Python,则应通过Anaconda软件包管理器进行获取。Anaconda提供了适用于Windows,Mac和Linux计算机的安装程序。如果选择完整的安装程序,则将在一个软件包中获得所需的所有模块以及Python和pandas。这是最简单,最快的入门方法。
 

  数据集
 

  在如何将Excel和Python和Pandas结合使用中,我们将使用由Kaggle的IMDB分数数据创建的多页Excel文件。

如何将Excel和Python和Pandas结合使用
 

  我们的Excel文件分为三页:“ 1900年代”,“ 2000年代”和“ 2010年代”。每张纸都包含那几年的电影数据。
 

  我们将使用此数据集来查找电影的收视率分布,可视化具有最高收视率和净收入的电影,并计算有关电影的统计信息。我们将使用Python和pandas分析和探索这些数据,从而展示pandas在Python中处理Excel数据的功能。
 

  从Excel文件中读取数据
 

  我们需要首先将数据从Excel文件导入到Pandas中。为此,我们首先导入pandas模块。

如何将Excel和Python和Pandas结合使用
 

  然后,我们使用Pandas的read_excel方法从Excel文件中读取数据。调用此方法的最简单方法是传递文件名。如果未指定工作表名称,则它将读取索引中的第一张工作表(如下所示)。

如何将Excel和Python和Pandas结合使用
 

  在此,该read_excel方法将数据从Excel文件读取到pandas DataFrame对象中。Pandas默认将数据存储在DataFrames中。然后,我们将此DataFrame存储到名为的变量中movies。
 

  Pandas有一个内置DataFrame.head()方法,我们可以使用它轻松显示DataFrame的前几行。如果未传递任何参数,它将显示前五行。如果传递了一个数字,它将从顶部开始显示相等的行数。

如何将Excel和Python和Pandas结合使用
如何将Excel和Python和Pandas结合使用
 

  Excel文件通常具有多个工作表,并且读取特定工作表或全部工作表的功能非常重要。为了简化此过程,pandasread_excel方法采用了一个称为的参数sheetname,该参数告诉pandas从数据中读取哪张纸。为此,您可以使用工作表名称或工作表编号。工作表编号从零开始。如果sheetname未提供参数,则默认为零,Pandas将导入第一张纸。
 

  默认情况下,pandas将自动分配一个从零开始的数字索引或行标签。如果您的数据没有具有唯一值的列,可以用作更好的索引,则可能需要保留默认索引。如果您认为有一个列可以用作更好的索引,则可以通过将index_col属性设置为列来覆盖默认行为。它使用一个数值来将单个列设置为索引,或者使用数值列表来创建一个多索引。
 

  在下面的代码中,我们通过将零传递给index_col参数来选择第一列“标题”作为索引(index = 0)。

如何将Excel和Python和Pandas结合使用
如何将Excel和Python和Pandas结合使用
 

  如上所述,我们的Excel数据文件分为三页。我们已经阅读了上面的DataFrame中的第一张表。现在,使用相同的语法,我们还将阅读其余两页。

如何将Excel和Python和Pandas结合使用
如何将Excel和Python和Pandas结合使用
如何将Excel和Python和Pandas结合使用
如何将Excel和Python和Pandas结合使用
 

  由于所有三个工作表都具有相似的数据,但记录运动不同,因此我们将根据上面创建的所有三个数据帧创建一个单独的数据帧。concat为此,我们将使用pandas方法,并传入刚刚创建的三个DataFrame的名称,并将结果分配给新的DataFrame对象movies。通过保持DataFrame名称与以前相同,我们将覆盖先前创建的DataFrame。

如何将Excel和Python和Pandas结合使用
 

  我们可以通过调用组合后的DataFrame中的行数来检查该串联,方法是调用组合后的DataFrame中的方法shape,该方法将为我们提供行数和列数。

如何将Excel和Python和Pandas结合使用
 

  使用ExcelFile类读取多张工作表
 

  我们还可以使用ExcelFile类来处理来自同一Excel文件的多个工作表。我们首先使用来包装Excel文件ExcelFile,然后将其传递给read_excelmethod。

如何将Excel和Python和Pandas结合使用
 

  如果您正在阅读包含大量图纸的Excel文件并创建大量DataFrame,ExcelFile则与相比,它更加便捷高效read_excel。使用ExcelFile,您只需传递一次Excel文件,然后就可以使用它来获取DataFrame。使用时read_excel,您每次都会传递Excel文件,因此会为每张纸再次加载该文件。如果Excel文件中包含许多行数很多的工作表,这可能会极大地拖累性能。
 

  探索数据
 

  现在,我们已经从Excel文件中读取了电影数据集,我们可以开始使用Pandas进行探索了。大PandasDataFrame以表格格式存储数据,就像Excel在表格中显示数据的方式一样。Pandas有很多内置方法来探索我们从刚刚读入的Excel文件中创建的DataFrame。
 

  我们已经head在上一节中介绍了该方法,该方法从DataFrame的顶部开始显示几行。让我们看看在探索数据集时会派上用场的其他几种方法。
 

  我们可以使用该shape方法找出DataFrame的行数和列数。

如何将Excel和Python和Pandas结合使用
 

  这告诉我们我们的Excel文件具有5042条记录和25列或观察值。这对于报告记录和列的数量并将其与源数据集进行比较很有用。
 

  我们可以使用该tail方法查看底部的行。如果未传递任何参数,则仅返回底部的五行。

如何将Excel和Python和Pandas结合使用
如何将Excel和Python和Pandas结合使用
 

  在Excel中,您可以根据一列或多列中的值对工作表进行排序。在Pandas中,您可以使用该sort_values方法执行相同的操作。例如,让我们根据“总收入”列对电影数据帧进行排序。


如何将Excel和Python和Pandas结合使用

  由于我们将数据按列中的值排序,因此我们可以做一些有趣的事情。例如,我们可以显示总收入前10名电影。

如何将Excel和Python和Pandas结合使用
 

  我们还可以为《总收入》中的前十部电影创建情节。通过流行的数据可视化库matplotlib,Pandas可以很容易地用绘图和图表可视化数据。用几行代码,您就可以开始绘图。此外,由于您可以在代码下直接放置图表,因此matplotlib图表在Jupyter Notebook中可以很好地工作。
 

  首先,我们导入matplotlib模块并设置matplotlib以在Jupyter Notebook中直接显示图。

如何将Excel和Python和Pandas结合使用
 

  我们将绘制一个条形图,其中每个条形将代表前十部电影之一。为此,我们可以调用plot方法并将参数设置kind为barh。这告诉matplotlib您绘制水平条形图。

如何将Excel和Python和Pandas结合使用
 

  让我们创建一个IMDB分数的直方图,以检查IMDB分数在所有电影中的分布。直方图是可视化数据集分布的好方法。我们使用plot电影让我们创建一个IMDB分数的直方图,以检查IMDB分数在所有电影中的分布。直方图是可视化数据集分布的好方法。我们使用plot电影数据帧中IMDB Scores系列的方法,并将其传递给参数。数据帧中IMDB Scores系列的方法,并将其传递给参数。

如何将Excel和Python和Pandas结合使用
 

  此数据可视化表明,大多数IMDB分数介于6到8之间。
 

  获取有关数据的统计信息
 

  Pandas有一些非常方便的方法来查看有关我们数据集的统计数据。例如,我们可以使用该describe方法来获取数据集的统计摘要。

如何将Excel和Python和Pandas结合使用
如何将Excel和Python和Pandas结合使用
 

  该describe方法为每个列显示以下信息。
 

  1)值的数量或数量

  2)意思

  3)标准偏差

  4)最小,最大

  5)25%,50%和75%的分位数
 

  请注意,此信息仅针对数字值进行计算。
 

  我们还可以使用相应的方法一次访问此信息。例如,要获取特定列的均值,可以使用该mean列上的方法。

如何将Excel和Python和Pandas结合使用
 

  就像平均值一样,我们要访问的每种统计信息都有可用的方法。您可以在我们的免费Pandas备忘单上阅读有关这些方法的信息。
 

  读取没有标题的文件并跳过记录
 

  在如何将Excel和Python和Pandas结合使用的前面,我们看到了一些方法来读取一种特殊的Excel文件,该文件具有标题并且没有需要跳过的行。有时,Excel工作表没有任何标题行。对于此类情况,您可以告诉Pandas不要将第一行视为标题或列名。并且,如果Excel工作表的前几行包含不应读取的数据,则可以要求该read_excel方法从顶部开始跳过一定数量的行。
 

  例如,查看此Excel文件的前几行。

如何将Excel和Python和Pandas结合使用
 

  该文件显然没有标题,并且前四行不是实际记录,因此不应读入。通过将参数设置header为None,可以告诉read_excel没有标题,并且可以通过将参数设置skiprows为4来跳过前四行。

如何将Excel和Python和Pandas结合使用
如何将Excel和Python和Pandas结合使用
 

  我们从工作表中跳过了四行,没有任何行用作标题。另外,请注意,可以在一个read语句中组合不同的选项。要跳过工作表底部的行,可以使用option skip_footer,它的作用与一样skiprows,唯一的区别是行是从底部向上计数的。
 

  前一个DataFrame中的列名称是数字,并且由Pandas默认分配。通过columns在DataFrame上调用方法并将列名作为列表传递,我们可以将列名重命名为描述性名称。

如何将Excel和Python和Pandas结合使用

 

  现在,我们已经了解了如何从Excel文件读取行的子集,我们可以学习如何读取列的子集。
 

  读取列的子集
 

  尽管read_excel默认为读取和导入所有列,但是您可以选择仅导入某些列。通过传递parse_cols = 6,我们告诉该read_excel方法仅读取第一列,直到索引为六或前七个列(第一列的索引为零)。

如何将Excel和Python和Pandas结合使用
 

  或者,您可以传入一个数字列表,这将使您可以导入特定索引处的列。
 

  在列上应用公式
 

  Excel的常用功能之一是应用公式从现有列值创建新列。在我们的Excel文件中,我们有“总收入”和“预算”列。我们可以通过从总收入中减去预算来获得净收入。然后,我们可以将此公式在Excel文件中应用于所有行。我们也可以在Pandas中做到这一点,如下所示。

如何将Excel和Python和Pandas结合使用
 

  上面,我们使用Pandas创建了一个名为“净收入”的新列,并在其中填充了“总收入”和“预算”的差额。值得注意的是,Excel和Pandas在公式处理方式上的区别。在Excel中,公式存在于单元格中,并在数据更改时更新-使用Python,会进行计算并存储值-如果手动更改了一部电影的总收入,则不会更新净收入。
 

  让我们使用该sot_values方法按照创建的新列对数据进行排序,并按“净收入”显示前十部电影。

如何将Excel和Python和Pandas结合使用
如何将Excel和Python和Pandas结合使用
 

  Pandas数据透视表
 

  高级Excel用户还经常使用数据透视表。数据透视表通过将数据分组到索引上并应用诸如排序,求和或求平均之类的操作来汇总另一个表的数据。您也可以在Pandas中使用此功能。
 

  我们需要首先确定将用作索引的一列或多列,以及将在其上应用汇总公式的列。让我们从小处开始,选择Year作为索引列,选择Gross Earnings作为汇总列,然后从该数据创建一个单独的DataFrame。
 

如何将Excel和Python和Pandas结合使用
 

  现在pivot_table,我们调用该数据子集。该方法pivot_table带有一个参数index。如前所述,我们要使用Year作为索引。
 

如何将Excel和Python和Pandas结合使用
 

  这为我们提供了一个枢纽分析表,其中按年份分组并汇总了总收入。注意,我们不需要明确指定“总收入”列,因为Pandas会自动将其标识为应应用汇总的值。
 

  我们可以使用该数据透视表创建一些数据可视化。我们可以plot在DataFrame上调用该方法以创建线图,并调用该show方法以在笔记本中显示该图。

如何将Excel和Python和Pandas结合使用
 

  我们看到了如何以单个列作为索引进行数据透视。如果我们可以使用多列,事情将会变得更加有趣。让我们创建另一个DataFrame子集,但是这次我们将选择“国家/地区”,“语言”和“总收入”列。

如何将Excel和Python和Pandas结合使用
 

  我们将使用“国家”和“语言”列作为数据透视表的索引。我们将使用毛收入作为汇总表,但是,我们不需要像前面看到的那样明确地指定它。

如何将Excel和Python和Pandas结合使用
 

  让我们用条形图可视化此数据透视表。由于此数据透视表中仍然有几百条记录,因此我们将只绘制其中的几条。

如何将Excel和Python和Pandas结合使用
 

  将结果导出到Excel
 

  如果您要与使用Excel的同事一起工作,则将Excel文件保存在Pandas之外非常重要。您可以使用pandasto_excel方法将pandas DataFrame导出或写入Excel文件。Pandasxlwt内部使用Python模块来写入Excel文件。该to_excel方法在我们要导出的DataFrame上调用,我们还需要传递一个将写入此DataFrame的文件名。

如何将Excel和Python和Pandas结合使用
 

  默认情况下,索引也保存到输出文件中。但是,有时索引不提供任何有用的信息。例如,moviesDataFrame具有数字自动增量索引,该索引不是原始Excel数据的一部分。

如何将Excel和Python和Pandas结合使用
如何将Excel和Python和Pandas结合使用
 

  您可以通过传递index-False来选择跳过索引。

如何将Excel和Python和Pandas结合使用
 

  我们需要能够使输出文件看起来更好,然后才能将其发送给我们的同事。我们可以将pandasExcelWriter类与XlsxWriterPython模块一起使用以应用格式。
 

  我们可以通过创建一个ExcelWriter对象来使用这些高级输出选项,并使用该对象写入EXcel文件。

如何将Excel和Python和Pandas结合使用
 

  我们可以通过调用add_format要写入的工作簿来应用自定义项。在这里,我们将标题格式设置为粗体。

如何将Excel和Python和Pandas结合使用
 

  最后,我们通过save在writer对象上调用方法来保存输出文件。

如何将Excel和Python和Pandas结合使用
 

  例如,我们保存的数据的列标题设置为粗体。保存的文件如下图所示。
 

  这样,可以XlsxWriter将各种格式应用于输出的Excel文件。

如何将Excel和Python和Pandas结合使用
 

  结论
 

  Pandas不能替代Excel。两种工具在数据分析工作流程中都有自己的位置,并且可以成为非常出色的辅助工具。正如我们所展示的,Pandas可以执行许多复杂的数据分析和操作,这取决于您的需要和专业知识,可能超出仅使用Excel所能实现的范围。在Excel上使用Python和Pandas的主要好处之一是,它可以通过编写脚本并与自动化数据工作流程集成来帮助您自动化Excel文件处理。Pandas还具有从Excel文件读取各种数据的出色方法。如果您的目标受众更喜欢将结果从Pandas导出回Excel,则也可以。
 

  另一方面,Excel是一个如此广泛使用的数据工具,忽略它不是一个明智的选择。掌握Pandas和Excel方面的专业知识并使其协同工作,可以为您提供技能,帮助您在组织中脱颖而出。

长按识别二维码,加关注
↓ ↓ ↓ 继续阅读与本文标签相同的文章
如何将Excel和Python和Pandas结合使用