专栏名称: SegmentFault思否
SegmentFault (www.sf.gg)开发者社区,是中国年轻开发者喜爱的极客社区,我们为开发者提供最纯粹的技术交流和分享平台。
目录
相关文章推荐
程序员的那些事  ·  印度把 DeepSeek ... ·  2 天前  
OSC开源社区  ·  宇树王兴兴早年创业分享引围观 ·  3 天前  
OSC开源社区  ·  2024: 大模型背景下知识图谱的理性回归 ·  3 天前  
程序猿  ·  “我真的受够了Ubuntu!” ·  3 天前  
程序员的那些事  ·  成人玩偶 + ... ·  4 天前  
51好读  ›  专栏  ›  SegmentFault思否

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

SegmentFault思否  · 公众号  · 程序员  · 2019-09-12 12:30

正文

大数据文摘出品

来源:medium

编译:张大笔茹


十年前,你说你是做数据的,大家的反应就是 —— 用 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




6、查看 DataFrame 中的数据类型



三、分割:即 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中的值




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


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



10、根据数字条件过滤




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



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



13、包含Excel中的功能



14、从DataFrame获取特定的值



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




15、排序


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




四、统计功能


1、描述性统计


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



描述性统计总结:



五、数据计算


1、计算某一特定列的值


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



2、计数


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




3、求和


按行或列求和数据:



为每行添加总列:




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




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



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




6、用drop函数删除行




7、计算每列的总和



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







请到「今天看啥」查看全文