Python教程

手把手教你做一个“渣”数据师,用Python代替老情人Excel

本文主要是介绍手把手教你做一个“渣”数据师,用Python代替老情人Excel,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

图片



十年前,你说你是做数据的,大家的反应就是 —— 用 Excel 做做表。


现在,要成为一个合格的数据分析师,你说你不会 Python,大概率会被江湖人士耻笑。


Medium 上一位博主就分享了他一步步用 Python 替换掉十年前的“老情人”Excel 的过程,一起来学习一下吧!


图片


在 Excel 成为我的“初恋”十年之后,是时候找一个更好的“另一半”了,在这个技术日新月异的时代,更好更薄更轻更快处理数据的选择就在身边!我希望用 Python 取代几乎所有的 excel 功能,无论是简单的筛选还是相对复杂的创建并分析数据和数组。


我将展示从简单到复杂的计算任务。强烈建议你跟着我一起做这些步骤,以便更好地理解它们。


拟写此文的灵感来自于人人可访问的免费教程网站,我曾认真阅读并一直严格遵守这篇 Python 文档,链接如下,相信你也会从该网站中找到很多干货。


GitHub 链接:

https://github.com/ank0409/Ditching-Excel-for-Python


一、导入 excel 文件


初始步骤是将 excel 文件导入 DataFrame,以便我们执行所有任务。我将演示支持xls和xlsx文件扩展名的Pandas的read_excel方法。read_csv与 read_excel 相同,就不做深入讨论了,但我会分享一个例子。



尽管 read_excel 方法包含数百万个参数,但我们只讨论那些在日常操作中最常见的那些。


我们使用 Iris 样本数据集,出于教育目的,该数据集可在线免费使用。


请按照以下链接下载数据,并将其放在与存储 Python 文件的同一文件夹中。


https://archive.ics.uci.edu/ml/datasets/iris


1、第一步是在 Python 中导入库


图片


可以使用以下代码将电子表格数据导入 Python:


pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, parse_cols=None, usecols=None, squeeze=False, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True, verbose=False, parse_dates=False, date_parser=None, thousands=None, comment=None, skip_footer=0, skipfooter=0, convert_float=True, mangle_dupe_cols=True, **kwds)

有大量可用的参数,我们来看一下最常用的一些参数。


2、一些重要的 Pandas read_excel 选项


图片


如果默认使用本地文件的路径,用“\”表示,接受用“/”表示,更改斜杠可以将文件添加到 Python 文件所在的文件夹中。如果需要有关上述内容的详细说明,请参阅以下文章。


https://medium.com/@ageitgey/Python-3-quick-tip-the-easy-way-to-deal-with-file-paths-on-windows-mac-and-linux-11a072b58d5f


用 Python 扫描目录中的文件并选择想要的:


图片


3、导入表格


默认情况下,文件中的第一个工作表将按原样导入到数据框中。


使用 sheet_name 参数,可以明确要导入的工作表。文件中的第一个表默认值为 0。可以用工作表的名字,或一个整数值来当作工作表的 index。


图片


4、使用工作表中的列作为索引


除非明确提到,否则索引列会添加到 DataFrame 中,默认情况下从 0 开始。


使用 index_col 参数可以操作数据框中的索引列,如果将值 0 设置为 none,它将使用第一列作为 index。


图片


5、略过行和列


默认的 read_excel 参数假定第一行是列表名称,会自动合并为 DataFrame 中的列标签。使用skiprows和header之类的函数,我们可以操纵导入的 DataFrame 的行为。


图片


6、导入特定列


使用 usecols 参数,可以指定是否在 DataFrame 中导入特定的列。


图片


这只是个开始,并不是所有的功能,但已足够你“尝鲜”了。


二、查看的数据的属性


现在我们有了 DataFrame,可以从多个角度查看数据了。Pandas 有很多我们可以使用的功能,接下来将使用其中一些来看下我们的数据集。


1、从“头”到“脚”


查看第一行或最后五行。默认值为 5,也可以自定义参数。


图片


2、查看特定列的数据


图片


3、查看所有列的名字


图片


4、查看信息


查看 DataFrame 的数据属性总结:


图片


5、返回到 DataFrame


image.png


6、查看 DataFrame 中的数据类型


image.png


三、分割:即 Excel 过滤器


描述性报告是关于数据子集和聚合的,当需要初步了解数据时,通常使用过滤器来查看较小的数据集或特定的列,以便更好的理解数据。


Python 提供了许多不同的方法来对 DataFrame 进行分割,我们将使用它们中的几个来了解它是如何工作的。


1、查看列


包括以下三种主要方法:


  • 使用点符号:例如 data.column_name
  • 使用方括号和列名称:数据[“COLUMN_NAME”]
  • 使用数字索引和 iloc 选择器:data.loc [:,'column_number']


图片


2、查看多列


图片


3、查看特定行


这里使用的方法是 loc 函数,其中我们可以指定以冒号分隔的起始行和结束行。注意,索引从 0 开始而不是 1。


图片


4、同时分割行和列


图片


5、在某一列中筛选


图片


6、筛选多种数值


图片


7、用列表筛选多种数值


图片


8、筛选不在列表或Excel中的值


image.png


9、用多个条件筛选多列数据


输入应为列一个表,此方法相当于 excel 中的高级过滤器功能:


image.png


10、根据数字条件过滤


图片


11、在Excel中复制自定义的筛选器


图片


12、合并两个过滤器的计算结果


image.png


13、包含Excel中的功能


image.png


14、从DataFrame获取特定的值


图片


如果想要用特定值查看整个 DataFrame,可以使用 drop_duplicates 函数:


图片


15、排序


对特定列排序,默认升序:


图片


四、统计功能


1、描述性统计


描述性统计,总结数据集分布的集中趋势,分散程度和正态分布程度,不包括 NaN 值:


图片


描述性统计总结:


图片


五、数据计算


1、计算某一特定列的值


输出结果是一个系列。称为单列数据透视表:


图片


2、计数


统计每列或每行的非 NA 单元格的数量:


图片


3、求和


按行或列求和数据:


图片


为每行添加总列:


图片


4、将总列添加到已存在的数据集


图片


5、特定列的总和,使用loc函数


图片


或者,我们可以用以下方法:


图片


6、用drop函数删除行


图片


7、计算每列的总和


图片


以上,我们使用的方法包括:


  • Sum_Total:计算列的总和
  • T_Sum:将系列输出转换为 DataFrame 并进行转置
  • Re-index:添加缺少的列
  • Row_Total:将 T_Sum 附加到现有的 DataFrame


8、多条件求和,即 Excel 中的 Sumif 函数


图片


9、多条件求和


图片


10、求算术平均值


图片


11、求最大值


图片


12、求最小值


图片


13、Groupby:即 Excel 中的小计函数


图片


六、DataFrame 中的数据透视表功能


谁会不喜欢 Excel 中的数据透视表呢?它是分析数据的最佳方式,可以快速浏览信息,使用超级简单的界面分割数据,绘制图表,添加计算列等。


现在没有了工作界面,必须用编写代码的方式来输出结果,且没有生成图表功能,但需要我们充分理解数据透视表的精华。


图片


简单的数据透视表,显示 SepalWidth 的总和,行列中的 SepalLength 和列标签中的名称。


现在让我们试着复杂化一些:


图片


用 fill_value 参数将空白替换为 0:


图片


可以使用 dictionary 函数进行单独计算,也可以多次计算值:


图片


七、Vlookup 函数


Excel 中的 vlookup 是一个神奇的功能,是每个人在学习如何求和之前就想要学习的。会用 vlookup 是很迷人的,因为输出结果时像变魔术一样。可以非常自信地说它是电子表格上计算的每个数据的支柱。


不幸的是 Pandas 中并没有 vlookup 功能!


由于 Pandas 中没有“Vlookup”函数,因此 Merge 用与 SQL 相同的备用函数。有四种合并选项:


  • left——使用左侧 DataFrame 中的共享列并匹配右侧 DataFrame,N/A 为NaN;
  • right——使用右侧 DataFrame 中的共享列并匹配左侧 DataFrame,N/A 为 NaN;
  • inner——仅显示两个共享列重叠的数据。默认方法;
  • outer——当左侧或右侧 DataFrame 中存在匹配时,返回所有记录。


图片


以上可能不是解释这个概念的最好例子,但原理是一样的。


整个教程到这里就结束啦,正如大家知道的那样,“没有完美的教程存在”,这位小哥的教程肯定也是不完美的,但是大家可以自己动手试试,如果大家还知道有什么 Python 可以替代 Excel 的地方,欢迎留言讨论!


相关报道:

https://towardsdatascience.com/replacing-excel-with-Python-30aa060d35e


- END -

图片


这篇关于手把手教你做一个“渣”数据师,用Python代替老情人Excel的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!