还剩48页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
与数据分析Python欢迎来到Python数据分析课程!本课程旨在帮助您掌握使用Python进行数据分析的关键技能我们将从基础开始,逐步深入,覆盖从Python语法到高级数据分析技术的全方位知识您将学习如何处理、清洗和转换数据,如何进行可视化展示,以及如何从数据中提取有价值的洞察本课程适合初学者和希望提升数据分析能力的专业人士随着数据分析人才需求的持续增长,掌握这些技能将为您的职业发展提供坚实基础为什么选择进行数据分析?Python简单易学、高效灵活大量开源库支持Python语法简洁清晰,易于理解和学Python拥有丰富的数据分析生态系习即使是编程初学者也能快速掌握统,包括NumPy、Pandas、基础知识,开始解决实际问题Matplotlib等专业库这些工具为数Python代码可读性高,便于团队协作据处理、分析和可视化提供了强大支和项目维护持,大大提高了开发效率行业应用案例丰富Python的灵活性使其适用于各种数据开源社区的活跃意味着这些库不断更从金融、医疗到电商、社交媒体,分析场景,从简单的数据处理到复杂新改进,遇到问题时也容易找到解决Python数据分析应用广泛谷歌、亚的机器学习模型,都能胜任其解释方案许多库都有详细的文档和教马逊、Netflix等科技巨头都在使用型语言特性让您可以快速测试想法和程,帮助用户快速上手Python进行数据驱动决策,证明了其迭代开发在实际业务中的价值发展简史Python1诞生与早期(1991年)Python由荷兰程序员Guido vanRossum于1991年创建最初设计目标是创造一种易读、易写且强调代码可读性的编程语言,体现了优雅、明确和简单的设计哲学2版本演进(
2.x与
3.x)Python
2.0于2000年发布,带来了列表解析、垃圾回收等重要功能Python
3.0于2008年发布,是对语言的重大改造,解决了许多设计缺陷,但不完全向后兼容,造成了社区的分裂两个版本并行发展多年,直到2020年Python2正式停止支持3数据科学崛起2010年后,随着NumPy、Pandas等库的成熟,Python在数据科学领域的应用迅速增长2012年后,深度学习兴起,TensorFlow、PyTorch等框架使Python成为AI领域的主导语言如今,Python已成为全球最流行的编程语言之一,尤其在数据分析领域占据主导地位开发环境简介PythonAnaconda集成环境Anaconda是最受欢迎的Python数据科学平台,它预装了数百个科学计算包它包括conda包管理器,可以轻松管理不同的Python环境和包依赖关系Anaconda Navigator提供图形界面,让新手也能轻松上手,而不必通过命令行操作Jupyter Notebook/VSCodeJupyter Notebook是数据分析的理想工具,它允许在一个文档中混合代码、文本、可视化和方程式代码可以分块执行,便于迭代开发和试验Visual StudioCode则是功能强大的代码编辑器,通过Python扩展提供智能补全、调试、Git集成等高级功能,适合开发大型项目pip与conda包管理pip是Python的标准包管理器,用于安装PyPI(Python包索引)中的包conda则是Anaconda的包管理器,不仅可以管理Python包,还可以处理其他语言的库和系统依赖两者各有优势,对于数据科学工作,推荐使用conda创建环境,pip安装特定包数据分析常用库简介Python核心数据处理与分析数据可视化工具•NumPy提供高性能的多维数•Matplotlib经典的绘图库,组对象和科学计算工具提供静态、动态和交互式可视化•Pandas提供数据结构和数据分析工具,特别适合处理表格•Seaborn基于Matplotlib的数据统计数据可视化库,更美观、更高级•SciPy基于NumPy的科学计算库,提供高级数学函数•Plotly交互式可视化库,支持web展示和动态图表机器学习与统计分析•Scikit-learn主流的机器学习库,提供各种算法实现•StatsModels专注于统计建模和假设检验•TensorFlow/PyTorch深度学习框架,用于构建神经网络基础语法变量与数据类型Python基本数据类型复合数据类型Python拥有丰富的内置数据类列表list是有序可变序列,可包型,包括整数int、浮点数含不同类型的元素字典dict是float、布尔值bool和字符串键值对集合,提供高效的查找str整数可以是任意大小,浮元组tuple类似列表但不可变,点数遵循IEEE754标准布尔值集合set存储唯一元素这些类只有True和False两种状态字型各有特点,适用于不同场景,符串是Unicode字符序列,支持是Python数据处理的基础强大的操作和格式化功能Python的动态类型特性Python是动态类型语言,变量类型在运行时确定,可以随时改变这提供了极大的灵活性,但也要注意潜在的类型错误使用type和isinstance函数可以检查变量类型类型转换函数如int、float、str可以在不同类型间转换数据基础语法流程控制Pythonif-elif-else条件语句Python的条件语句使用缩进而非括号来划分代码块,语法简洁明了条件表达式可以使用比较运算符(如==,!=,,)和逻辑运算符(and,or,not)组合多重条件判断使用elif关键字,可以任意嵌套for与while循环for循环用于遍历可迭代对象,如列表、字符串、字典等while循环则在条件为真时重复执行Python的for循环比许多语言更灵活,不限于数字范围与条件语句类似,循环体也通过缩进来界定break与continue用法break语句用于提前退出循环,当满足特定条件时立即结束整个循环continue语句则跳过当前迭代的剩余部分,直接进入下一次迭代这两个关键字提供了灵活控制循环执行流程的能力,在数据处理中经常使用函数与模块Pythonreturn关键字使用return语句从函数返回值,可以返回任何类型的数据,包括复合类型和多个值实际是返回元组如果没有return自定义函数def语句,函数默认返回None优秀的函数设计应明确输入和输出,使代码模块化使用def关键字定义函数,函数名应使和可重用用小写字母加下划线参数可以带默认值、可变参数列表*args或关键字参数import导入标准库与第三方库**kwargs,提供了极大的灵活性函Python使用import语句导入模块,可以数文档字符串docstring帮助记录函数导入整个模块、特定函数或类from-用途和用法import语法允许直接导入特定组件as关键字可创建别名,如import numpyasnp模块搜索路径通过sys.path决定,理解模块导入机制对构建大型项目至关重要文件读写与数据输入输出基础文件操作Python使用open函数打开文件,结合with语句可确保正确关闭文件资源文件模式包括读取r、写入w、追加a和二进制模式b文本与结构化数据处理处理纯文本文件使用read、readline、readlines方法,而写入则用writecsv模块提供标准化的CSV文件处理,支持不同分隔符和格式Pandas高级数据读写pandas库提供强大的数据导入导出功能,包括read_csv、read_excel、read_json等方法,支持丰富的参数配置和数据转换选项异常处理与代码调试try-except语法调试技巧print/log信息追踪Python的异常处理机Python提供多种调试简单但有效的调试方制使用try-except块工具,包括内置的法是使用print函数捕获和处理程序运行pdb模块,IDE集成调输出变量值和执行状时出现的错误可以试器如PyCharm、VS态更高级的日志记捕获特定类型的异常Code调试过程中可录通过logging模块实或通用Exception,从以设置断点、单步执现,支持不同级别的而避免程序崩溃行、检查变量值,跟日志DEBUG,INFO,try-except-else-踪程序执行流程了WARNING,ERROR,finally结构提供了完解如何解读错误消息CRITICAL和复杂的整的异常处理框架,和堆栈跟踪是高效调配置良好的日志系确保资源正确释放和试的关键统对于生产环境的问必要操作执行题排查至关重要列表、字典与集合操作数据结构特性常用操作适用场景列表List有序、可变、允许append,需要保持顺序和随重复元素extend,insert,时修改的数据集合remove,sort字典Dict键值对、无序、键get,keys,需要通过键快速查唯一values,items,找值的场景update集合Set无序、无重复元素add,remove,需要元素唯一性或union,集合运算的场景intersection,difference列表解析式是Python的强大特性,可以用简洁的语法创建列表,如[x*2for xin range10ifx%2==0]字典也有类似的推导式,如{k:v fork,v inzipkeys,values}这些数据结构之间可以相互转换,例如使用list将字典的键转换为列表,或使用dict从键值对列表创建字典对象与面向对象简介实践应用数据分析中的类设计与继承属性与方法数据封装与行为定义类与对象基础设计图纸与实例关系Python是一种完全面向对象的语言,一切都是对象类class是对象的蓝图,定义了一类对象的属性和方法使用class关键字创建类,__init__方法是构造函数,用于初始化对象self参数表示对象自身,是类方法的第一个参数在数据分析中,面向对象编程可以用来创建自定义数据结构、封装复杂的数据处理逻辑、实现数据分析流程的模块化例如,可以定义DataCleaner类专门处理数据清洗,或创建可重用的可视化组件理解面向对象的概念对于使用和扩展Pandas、Matplotlib等库也非常重要数据分析流程总览明确问题与目标定义分析要解决的具体问题和期望达到的目标,制定合适的分析策略和评估标准数据获取从各种来源收集数据,包括数据库、API、文件、网页等,确保数据的完整性和可靠性数据预处理与分析清洗、转换、集成数据,进行探索性分析,应用适当的统计方法和模型结论与汇报提炼关键发现,制作可视化图表,撰写分析报告,提出基于数据的建议数据采集方式公开数据集获取APIs调用世界各地政府、机构和组织提供许多服务提供API(应用程序接大量开放数据集,如UCI机器学习口)允许程序化访问数据,如社库、Kaggle、世界银行、各国统交媒体平台、金融市场数据、天计局等这些数据已经经过整气服务等Python中可以使用理,通常包含详细的文档和元数requests库发送HTTP请求获取数据使用公开数据集可以快速开据,通常返回JSON或XML格式始分析项目,专注于数据分析而API调用通常需要认证和遵守速率非数据收集限制,但提供了获取实时或近实时数据的能力Web爬虫当数据没有API但在网页上可见时,可以使用爬虫技术提取信息Python生态提供了强大的工具如Beautiful Soup、Scrapy等爬虫需要考虑法律和伦理问题,遵守robots.txt规则,避免服务器过载合理的爬取策略能获取大量结构化和非结构化网络数据数据类型与数据结构结构化数据半结构化数据具有明确定义的格式和模式,通常存储在不完全符合表格模型,但包含标签或标记关系型数据库或表格中来分隔元素•CSV、Excel表格•JSON、XML文件•SQL数据库表•HTML网页•固定格式的日志文件•NoSQL数据库内容数据结构表示非结构化数据Python中表示和处理不同类型数据的主要没有预定义的数据模型,信息提取需要专方式门处理•DataFrame二维表格结构•文本文档、图像•数组和多维张量•视频、音频文件•树、图等专门结构•社交媒体内容使用进行数据导入导出Pandas读取CSV和文本文件Excel文件操作其他格式与数据库连接pd.read_csv函数是最常用的数据导入方pd.read_excel支持读取.xls和.xlsx格式,Pandas支持多种数据格式,包括法,支持多种分隔符、编码和解析选项可可以指定工作表、单元格范围、标题行等JSONread_json、HTML表格以通过指定参数处理表头、索引、缺失值等需要安装openpyxl或xlrd库作为依赖导出read_html、SQL数据库read_sql等问题read_table函数类似,但默认使用到Excel使用to_excel方法,可以写入多个pd.io.sql模块提供了与SQLAlchemy的集制表符作为分隔符这些函数返回工作表,设置格式,添加条件格式等成,可以连接MySQL、PostgreSQL等主流DataFrame对象,立即可用于分析数据库数据导出同样丰富,支持to_csv、to_json、to_sql等多种方法数据结构pandas SeriesSeries基本概念Series操作与属性Series是pandas的基础数据结构,本质上是带有标签的一维Series支持丰富的数学和统计操作,如sum、mean、数组它由两部分组成索引index和值values索引为std等可以通过位置iloc或标签loc访问元素,支持切每个数据点提供标识,而值则保存实际数据索引可以是数片、布尔索引等高级选择方法Series的强大之处在于它既字、字符串,甚至日期时间,提供了灵活的数据访问方式有数组的高效操作,又有字典的灵活索引常用属性包括-values获取底层NumPy数组-index创建Series的基本语法是s=pd.Seriesdata,获取索引对象-dtype数据类型-shape形状(元素个index=index其中data可以是列表、字典、标量值或数)NumPy数组索引默认为整数序列,也可明确指定数据结构pandas DataFrame二维表格结构DataFrame是表格形数据结构,包含行索引和列标签,可视为Series的集合数据访问与操作通过columns访问列,index访问行,支持标签loc和位置iloc索引数据选择与过滤支持切片、布尔索引、query方法进行复杂条件筛选和数据提取DataFrame是Pandas中最核心的数据结构,可以通过多种方式创建从字典、列表、NumPy数组、其他DataFrame或外部文件每一列可以有不同的数据类型,这与NumPy数组不同常用方法包括head和tail查看数据首尾,info显示基本信息,describe生成描述性统计DataFrame的强大功能还包括灵活的索引重置reset_index、列重命名rename、排序sort_values、缺失值处理fillna,dropna等理解和掌握DataFrame是进行高效数据分析的关键,几乎所有pandas操作都围绕这一结构展开数据初步探索与描述性统计数据筛选与条件查询布尔索引多条件过滤特殊筛选方法布尔索引是Pandas中最常用的筛选方使用逻辑运算符与、|或、~非组合isin方法检查值是否在一个列表中,如法,通过条件表达式创建布尔数组,然后多个条件需注意,每个条件都必须括在df[df[category].isin[food,drink]]用它选择符合条件的行例如括号内,如df[df[price]100between方法筛选在范围内的值,如df[df[price]100]选择价格大于100的df[category]==food]对于复杂条df[df[price].between10,100]这些方所有行这种方法直观且灵活,可以处理件,query方法提供更简洁的语法,例法使常见的筛选操作更加简洁高效,是数各种条件判断如df.queryprice100and category==据分析中的常用技巧food数据分组与聚合320+关键步骤聚合函数分组聚合过程包括拆分、应用函数和合并结果Pandas内置多种统计函数可用于聚合操作2主要方法groupby和agg是分组聚合的核心方法数据分组是数据分析中的基本操作,通过groupby方法实现基本语法是df.groupbycolumn,这将返回一个GroupBy对象对此对象应用聚合函数如sum、mean、count可获得每组的统计结果例如,df.groupbycategory[price].mean计算每个类别的平均价格高级应用包括多列分组df.groupby[category,region]和聚合多列df.groupbycategory.agg{price:mean,quantity:sum}aggregate方法(简写agg)支持传入自定义函数,甚至可以对同一列应用多个函数,如df.groupbycategory[price].agg[min,max,mean]这些强大的分组聚合功能使数据的摘要和洞察变得简单高效数据透视表与交叉表数据透视表pivot_table交叉表crosstabpivot_table函数是pandas中创建数据透视表的主要工具,crosstab函数专门用于计算两个或多个因素的频率表,主要类似于Excel中的数据透视表功能它可以自动对数据进行用于分类数据分析它可以快速生成计数、频率或自定义统分组、汇总和聚合,帮助我们从不同角度查看数据计量的交叉表,帮助发现变量间的关系基本语法为pd.pivot_tabledata,values,index,基本语法为pd.crosstabindex,columns,values,columns,aggfunc其中,data是源数据框,values是要聚aggfunc交叉表常用于市场研究、问卷分析等场景,可以轻合的列,index定义行索引,columns定义列索引,aggfunc松回答有多少X类客户购买了Y产品之类的问题通过添加指定聚合函数(默认为mean)normalize参数,还可以计算行百分比、列百分比或总体百分比缺失数据处理高级填充技术插值法、预测模型填充标准填充方法均值、中位数、众数填充缺失值检测识别和统计缺失数据缺失数据是数据分析中的常见问题,可能由数据收集错误、记录问题或真实缺失导致Pandas使用NaNNot aNumber表示数值型缺失值,None表示对象型缺失值使用isnull和notnull可以检测缺失值,返回布尔型DataFrame,而isnull.sum可以统计每列缺失值数量处理缺失值有两种主要策略删除和填充dropna方法可以删除包含缺失值的行或列,可设置阈值和选择行/列方向fillna方法用于填充缺失值,可使用常数值、前向填充ffill、后向填充bfill等对于时间序列数据,interpolate方法提供线性、样条等多种插值选项选择合适的缺失值处理策略取决于数据特性和分析目标,影响后续分析的准确性重复值与异常值处理重复数据识别与处理异常值检测方法•使用duplicated方法检测重复•统计方法Z分数、IQR范围行•可视化识别箱型图、散点图•参数subset指定基于特定列判断•基于域知识的逻辑规则检测•密度或距离为基础的聚类方法•drop_duplicates移除重复项•keep参数控制保留first或last异常值处理策略•删除异常值(适合样本充足)•替换为边界值或中心趋势•转换或标准化减少影响•创建是否异常标记进行分析数据类型转换基本类型转换astype时间序列类型转换分类数据类型Pandas中使用astype方法将一列数据从一使用pd.to_datetime函数将各种格式的日对于具有有限可能值的列,可以转换为分类种类型转换为另一种类型例如,将字符串期时间字符串转换为datetime64类型这使类型以提高效率df[category]=转换为数值df[price]=得可以执行日期算术、重采样和时间序列分pd.Categoricaldf[category]这减少了内df[price].astypefloat64这个方法可以析函数支持多种格式参数,自动处理各种存使用,并允许指定类别顺序,如应用于整个DataFrame或特定列,支持日期表示,如df[date]=pd.Categoricalvalues,categories=[low,numpy中的所有数据类型,以及pd.to_datetimedf[date],format=%Y-medium,high],ordered=True,使得比category、datetime64等pandas特有类%m-%d转换后可提取年、月、日、星期较和排序更符合逻辑顺序型等组件数据合并与连接Pandas提供了三种主要的数据合并方法,分别用于不同场景concat函数沿轴向拼接DataFrame,类似于数据库的UNION操作基本语法为pd.concat[df1,df2],默认沿行方向axis=0拼接,也可设置axis=1沿列方向拼接参数ignore_index=True可重新生成索引merge函数实现类似SQL JOIN的操作,基于键值合并数据,默认是内连接inner语法为pd.mergeleft,right,on=key,支持左连接left、右连接right和全外连接outer当键名不同时,可使用left_on和right_on指定join方法是基于索引的连接,是DataFrame的实例方法,如df
1.joindf2,适合索引对齐的情况这些操作使数据整合变得简单高效,是数据预处理的核心工具文本数据处理字符串基本操作正则表达式应用Pandas中通过str访问器提供矢量化使用str.contains、str.match、字符串操作,如str.extract等方法结合正则表达式进df[text].str.lower、行复杂模式匹配df[text].str.replace等文本清洗预处理文本拆分与合并去除特殊字符、统一大小写、词干提str.split拆分文本为列表,str.join取、停用词过滤等自然语言处理基础连接元素,str.get获取特定位置元步骤素时间序列数据处理时间索引创建使用pd.date_range创建等间隔时间索引,pd.to_datetime转换各种格式的日期时间字符串时间索引支持日期范围选择、计算时间差和提取时间组件(年、月、日、小时等)频率转换与重采样resample方法改变时间序列的频率向上采样(如日到小时)增加数据点,需要插值;向下采样(如日到月)减少数据点,需要聚合常用参数D表示时移与滞后操作日、M表示月末、H表示小时等shift方法创建时间滞后特征,用于分析时间依赖关系diff计算时间序列差分,常用于趋势去除pct_change计算百分比变化,适用于金融数据分析时间窗口计算rolling创建固定大小滚动窗口,如7天均值expanding创建从起点开始扩大的窗口,适合累积统计ewm计算指数加权移动统计量,赋予近期数据更高权重数据规范化与标准化数据规范化的必要性常用规范化方法在许多机器学习算法中,特征的量纲会对模型性能产生显著标准化Z-score将数据转换为均值为
0、标准差为1的分布影响尤其是基于距离的算法(如K均值聚类、KNN、使用公式z=x-μ/σ,其中μ是均值,σ是标准差在SVM)对特征尺度非常敏感标准化和归一化的过程消除了scikit-learn中,使用StandardScaler实现这种方法适合量纲影响,使不同特征在相同尺度上比较,保证模型训练的假设数据服从正态分布的情况公平性和稳定性Min-Max归一化将数据线性映射到[0,1]或[-1,1]区间公式此外,某些算法如梯度下降法在数据规范化后能够更快收为x_norm=x-min/max-min在scikit-learn敛规范化还有助于提高数值稳定性,防止在计算过程中出中,使用MinMaxScaler实现这种方法保留了原始数据分现溢出或下溢问题因此,数据规范化通常是数据预处理的布的形状,但会受到异常值的显著影响标准步骤对于有异常值的数据,可以使用RobustScaler,它基于中位数和四分位数范围进行缩放,对离群点不敏感特征提取与特征工程概述特征选择从已有特征中选择最相关、最有信息量的子集,减少维度和噪声常用方法包括过滤法(如相关系数、卡方检验)、包装法(如递归特征消除)和嵌入法(如正则化中的L1正则)特征选择可以提高模型效率、减少过拟合风险降维处理将高维数据映射到低维空间,同时尽可能保留原始信息主成分分析PCA是最常用的线性降维方法,寻找数据方差最大的方向t-SNE和UMAP等非线性方法则更适合可视化高维数据,保留局部结构降维有助于处理多重共线性、减少计算开销特征编码将分类变量转换为机器学习算法可处理的数值形式一热编码One-Hot为每个类别创建二进制列,尤其适合名义型变量标签编码将类别映射为整数,适合有序变量目标编码使用目标变量统计替换类别,适合高基数分类特征编码方法的选择取决于数据特性和模型类型特征构造基于领域知识创建新特征,或通过现有特征的数学组合衍生新特征常见操作包括多项式特征、交互特征、聚合统计、时间特征分解等特征构造对模型性能提升往往有决定性作用,是区分普通模型和优秀模型的关键所在数据可视化概述结果展示与交流用精美图表向利益相关者传达数据洞察确认分析与模式识别验证假设并发现数据中的规律探索性数据分析EDA初步了解数据分布和特征数据可视化是将复杂数据转化为直观图形的过程,它利用人类视觉系统的强大处理能力,帮助我们快速理解数据中的模式、趋势和异常在数据分析流程中,可视化贯穿始终,从初步数据探索到最终结果呈现都发挥着关键作用探索性数据分析EDA是可视化的重要应用场景,通过直方图、箱线图、散点图等基本图表,帮助分析师了解数据的分布特性、异常值和变量间关系确认性分析则使用可视化验证特定假设,如相关性分析、分组比较等最终的结果可视化需要考虑受众、清晰度和美学,将数据洞察以最有效的方式传达给决策者Python生态系统提供了多种可视化库,从基础的Matplotlib到高级的Seaborn、交互式的Plotly,满足不同层次的可视化需求基础绘图matplotlib基本绘图函数图表元素设置图表输出与保存matplotlib的核心是pyplot模块,通常导入完整的图表需要添加标题、轴标签和图例等使用plt.savefigfilename.png保存图表为为plt最基本的绘图函数是plt.plot,用于元素plt.title设置图表标题,plt.xlabel图片文件可以指定dpi参数控制分辨率,创建折线图例如,plt.plotx,y绘制x和y和plt.ylabel添加轴标签使用plt.legend如plt.savefigfigure.png,dpi=300创建高数组形成的线条plt.scatter创建散点图,添加图例,plt.grid显示网格线其他常用分辨率图像支持多种格式包括PNG、适合展示两个变量之间的关系其他常用函设置包括plt.xlim和plt.ylim调整坐标轴JPG、PDF和SVG在保存前,可以用数包括plt.bar(条形图)、plt.hist(直范围,plt.xticks和plt.yticks设置刻度plt.tight_layout自动调整子图之间的间方图)和plt.pie(饼图)距,确保标签不重叠高级用法matplotlib多子图绘制样式与自定义创建复杂图表布局是matplotlib的强大功能最简单的方法matplotlib支持广泛的线型、颜色和标记自定义线型可通是使用plt.subplotrows,cols,index,它将图表区域分割成过linestyle参数设置如--表示虚线,颜色使用color参数网格,并激活特定位置的子图更灵活的方法是如r表示红色或#FF0000使用十六进制表示,标记通过plt.subplots,返回图形对象和坐标轴数组marker参数如o表示圆点例如fig,axes=plt.subplots2,3#2行3列样式设置可通过plot函数的简写形式实现,如plt.plotx,y,axes[0,0].plotx,y#访问第一个子图对于不规则布局,ro--表示红色圆点虚线高级自定义包括透明度alpha、GridSpec提供了完全自定义的方式,允许子图跨越多个单元线宽linewidth、标记大小markersize等plt.style.use格可应用预定义样式,如ggplot或seaborn,使图表具有一致美观的外观内置可视化pandaspandas提供了基于matplotlib的高级绘图接口,简化了数据可视化流程DataFrame和Series对象都有plot方法,默认创建折线图通过指定kind参数可绘制不同类型的图表,如df.plotkind=bar创建条形图,df.plotkind=scatter,x=column1,y=column2创建散点图常用图表类型还包括hist直方图、box箱线图、pie饼图和area面积图对分组数据的可视化特别方便,如df.groupbycategory[value].mean.plotkind=bar直接绘制分组均值条形图pandas继承了matplotlib的灵活性,可通过figsize控制图表大小,通过title添加标题,通过grid显示网格线颜色可通过color参数自定义,或使用colormap参数应用色彩映射这些内置方法大大简化了从数据到可视化的工作流程,特别适合快速探索性分析数据可视化seaborn增强美观性seaborn基于matplotlib构建,提供更美观的默认样式和调色板使用set_theme函数可一次性设置图表样式,包括darkgrid、whitegrid、dark、white和ticks五种预设主题调色板函数如color_palette提供多种配色方案,支持顺序、发散和类别配色统计绘图函数seaborn专注于统计可视化,提供了多种专门函数countplot显示分类变量计数,boxplot和violinplot展示分布,heatmap创建相关矩阵热图这些函数自动处理分组数据,如通过hue参数添加第三个分类变量seaborn的API设计简洁,使复杂可视化变得简单高级数据集成seaborn可以直接使用DataFrame,理解其结构和数据类型FacetGrid允许创建子图网格,按一个或多个变量拆分可视化pairplot自动创建变量对的散点图矩阵,对角线显示单变量分布seaborn还提供了内置数据集用于学习和测试,可通过load_dataset函数访问绘制关系型数据图散点图scatterplot折线图lineplot回归图regplot/lmplot散点图是观察两个数值变量之间关系的基本工折线图连接按x轴排序的数据点,适合展示随时回归图在散点图基础上添加拟合线,帮助理解具每个点代表一个观测值,通过x和y坐标展间变化的趋势seaborn的lineplot函数自动变量间的线性关系seaborn的regplot函数绘示两个变量的值散点图可以直观显示相关计算每个x值处的中心趋势(默认为均值)和置制数据点和回归线,自动包括95%置信区间阴性、聚类和异常点在seaborn中,使用信区间这使它特别适合可视化带有不确定性影更高级的lmplot结合了FacetGrid功能,scatterplot函数或更简洁的的趋势,如多次试验的平均结果通过ci参数可以基于分类变量创建多个子图,比较不同组relplotkind=scatter创建散点图可以通过可以调整置信区间,设为sd显示标准差,或设的回归关系参数order控制多项式回归的次hue、size和style参数添加额外维度,表示分类为None关闭不确定性可视化数,robust=True使用稳健回归抵抗异常值影变量或第三个数值变量响类别型数据可视化箱线图boxplot条形图与小提琴图箱线图boxplot是展示数值变量在不同类别之间分布差异的条形图barplot显示分类变量的统计摘要,默认为均值和置强大工具每个箱子显示数据的四分位数范围Q1到Q3,信区间与简单计数图countplot不同,barplot可以展示中线表示中位数,触须通常延伸到
1.5*IQR四分位距,超数值变量在各类别的聚合统计量sns.barplotx=category,出范围的点视为异常值单独绘制y=value,data=df,estimator=np.median可以通过estimator参数更改统计函数,如中位数、最大值等seaborn的boxplot函数简化了创建过程sns.boxplotx=category,y=value,data=df还可以通过小提琴图violinplot结合了箱线图和核密度图的特点,显示hue参数添加嵌套分类,通过orient参数改变方向,通过完整分布形状通过内核密度估计创建对称的密度曲线,形notch=True添加凹口表示中位数的置信区间箱线图特别适状宽处表示数据点集中,窄处表示稀疏合比较分布形状和检测异常值sns.violinplotx=category,y=value,data=df,inner=stick inner参数控制内部表示,可以是box、quartile、stick显示观测点或None分布及相关性可视化可视化展示美化图表字体中文支持美化元素设置在matplotlib中显示中文需要配置正确高质量可视化需要精心设计的细节标的字体可以使用注(annotation)用于突出关键点或添matplotlib.rcParams[font.family]设加说明文字网格线(grid)提高可读置字体族,或者更具体地指定中文字性,可通过linestyle和alpha参数调整体常用方法是使用样式和透明度背景色可以通过matplotlib.font_manager.FontProper set_facecolor方法设置,或者使用ties创建字体属性对象,然后在设置标matplotlib样式如ggplot、seaborn自题、标签时应用一个更简单的方法是动应用一套协调的样式标题、图例和安装中文字体包(如SimHei),然后轴标签的大小、位置和样式也是提升可配置matplotlib的rcParams全局设置视化专业度的关键交互式可视化简介交互式可视化允许用户放大、缩小、悬停查看详情等matplotlib支持有限的交互功能,而专门的库如plotly和bokeh提供了全面的交互能力plotly.express模块提供了类似于seaborn的简洁API,但创建的是可交互图表这些库可以创建在浏览器中运行的动态图表,支持缩放、平移、工具提示和交互式图例等功能交互式可视化简介Plotly基础用法Bokeh特性HTML输出与集成Plotly是一个强大的交互式可视化库,支持丰富Bokeh专注于在现代Web浏览器中创建交互式交互式图表可以保存为独立HTML文件,嵌入的图表类型和交互功能plotly.express模块提可视化,特别适合大数据集和流数据它的架网页或仪表盘在Jupyter环境中,这些图表直供了简化的高级接口,语法类似seaborn例构分为低级bokeh.models和高级接在笔记本中交互,丰富了数据探索体验如,px.scatterdf,x=column1,y=column2,bokeh.plottingAPIBokeh的强项是无缝集Plotly通过fig.write_htmlfile.html保存color=category创建带有颜色分组的交互式散成Python和JavaScript,支持链接图表、自定HTML,Bokeh使用save函数这些库还支持点图用户可以通过悬停查看数据点详情,通义交互工具和事件处理一个独特功能是服务与Dash、Panel、Streamlit等应用框架集成,过工具栏放大缩小,保存图片或导出数据器组件bokeh serve,能创建响应式数据应构建完整的交互式数据应用用案例一销售数据分析实战案例二用户行为分析日志数据清洗处理结构不
一、时间格式不统一的原始日志数据用户指标计算构建DAU、留存率、活跃度等关键业务指标行为轨迹分析使用路径分析和漏斗图可视化用户流程本案例分析移动应用的用户行为日志数据首先对杂乱的日志进行清洗和结构化,使用正则表达式提取事件类型、时间戳和用户标识将时间转换为统一格式并进行时区调整对于不完整的事件序列,基于业务规则进行补全或过滤这一清洗过程使用了Pandas的字符串处理和时间函数核心分析包括计算日活跃用户数DAU、周活跃用户数WAU的变化趋势,以及用户留存率通过cohort_analysis函数构建留存矩阵,发现新用户在第一周后留存率显著下降,但保留下来的用户忠诚度较高用户路径分析使用networkx库构建事件转换图,识别出常见的使用模式和潜在的流失点最后,通过漏斗分析可视化了从应用打开到购买转化的各阶段流失情况,发现用户在商品详情页到购物车阶段流失最严重,为产品优化提供了明确方向案例三电影评分数据探索数据集介绍与处理分析洞察与可视化本案例使用MovieLens数据集,包含用户对电影的评分、电分析发现平均评分呈偏右分布,用户倾向给出积极评价通影元数据和用户信息三个主要表首先进行数据清洗和整过合,使用pandas的merge函数关联这些表格df.groupbygenres[rating].mean.sort_valuesascendinratings_with_info=pd.mergeratings,movies,g=False分析不同类型电影的评分情况,发现纪录片和经典on=movieId转换日期格式,提取年代信息,并对缺失的剧情片获得最高评分,而恐怖片和科幻片评分差异最大,表元数据进行补充明更强的观众分歧使用df.pivot_table创建用户-电影评分矩阵,用于后续的协时间趋势分析显示评分活动在周末显著增加,而每年假日季同过滤分析对电影标题和描述使用文本处理技术,提取关节评分数量达到峰值使用seaborn的heatmap可视化用户键词并分类这一数据准备阶段奠定了深入分析的基础活跃时间模式最后,使用WordCloud生成热门影片关键词云图,直观展示流行主题和元素这些发现为影片推荐系统和市场策略提供了有价值参考案例四公司人力资源数据分析数据准备与探索清洗HR表格数据,处理缺失值和异常值,创建派生特征描述性统计分析计算关键指标,生成部门和职级横向对比离职因素分析探索影响员工离职的关键变量和模式可视化报告输出创建交互式仪表板,展示人力资源关键发现本案例分析一家科技公司的人力资源数据,目标是理解员工离职原因并提出改进策略数据包括人口统计信息、薪资、绩效评估、满意度调查等使用pandas清洗数据后,创建了一系列新特征,如工作年限分组、薪资与市场比例、晋升速度等分析发现,公司整体离职率为15%,但研发部门高达22%,远高于行业平均水平薪资与离职呈负相关,但有趣的是,晋升速度与离职关系更强满意度得分低于3(5分制)的员工离职风险增加3倍年龄分析显示,25-35岁高技能员工流失最严重通过决策树和随机森林模型,识别出影响离职的关键因素依次为工作满意度、加班时间、与主管关系、晋升机会、薪酬竞争力基于这些发现,建议公司重新评估研发部门工作负荷,优化晋升通道,并加强中层管理培训完整分析以交互式Dash仪表板形式呈现给管理层案例五房价预测数据准备简单的机器学习入门监督学习无监督学习scikit-learn工作流程•基于有标签训练数据•处理无标签数据•数据分割train_test_split•包括分类和回归问题•寻找数据内在结构和模式•模型初始化实例化算法对象•常用算法线性回归、决策树、随机•常用算法K均值聚类、层次聚类、•模型训练model.fitX_train,y_train森林、SVM DBSCAN、PCA•预测model.predictX_test•评估指标准确率、精确率、召回•评估指标轮廓系数、肘部法则、解•评估混淆矩阵、分类报告、交叉验率、F1分数、MSE等释方差比证实用脚本与自动化数据自动化批处理定时数据抓取与分析自动化报表生成使用Python脚本可以自动化处理大量数据文结合schedule库或系统的cron作业,可以创使用Python可以完全自动化报表生成流程件,省去手动操作步骤例如,一个脚本可以建定时执行的数据抓取和分析任务例如,每脚本可以从数据库提取数据,执行分析,生成遍历文件夹中所有CSV文件,应用清洗和转换天从API获取股票数据,计算技术指标,监测图表,然后创建格式化的Excel或PDF报告函数,然后保存处理结果使用os和glob模块特定模式并发送提醒requests库用于API调pandas用于数据处理,matplotlib/seaborn查找文件,pandas进行处理,用,pandas进行数据分析,smtplib发送电子绘制图表,openpyxl或XlsxWriter格式化multiprocessing实现并行处理加速这类批邮件通知这种自动化监控系统可应用于各种Excel,ReportLab创建PDF可以设置自动处理脚本对于定期重复的数据处理任务特别有领域,从金融市场到网站流量分析发送报告给相关人员,大大减少手动报告工价值作数据分析常见问题解答Python性能优化建议针对大型数据集,可使用pandas优化技术如分块处理read_csv的chunksize参数,避免循环操作选择向量化操作,利用.loc代替链式索引,以及应用numba、Dask等并行计算工具数据类型优化如使用categories类型代替字数据规模扩展符串可显著减少内存使用对于计算密集型任务,考虑使用NumPy的优化数组操作或迁移到GPU加速库如RAPIDS当数据超出内存限制时,有多种策略可考虑基于磁盘的处理如使用SQLite或duckdb进行SQL查询;使用HDF5或Parquet等列式存储格式提高I/O效率;采用Dask或Vaex等分布式计算框架延伸pandas能力;对于真正的大数据,考常见报错和调试虑使用PySpark连接Spark集群或迁移到云计算平台如Google BigQuery、AWS Athena等选择策略应基于数据规模、复杂度和计算资源数据分析中常见错误包括SettingWithCopyWarning解决:使用.loc或copy;内存错误解决:分块处理或优化数据类型;索引对齐问题注意pandas的自动对齐特性;以及清洗不彻底导致的类型转换错误有效调试技巧包括在关键步骤打印数据形状和类型,使用dtypes和info检查数据结构,以及分解复杂操作为简单步骤逐一验证对于复杂分析流程,推荐使用版本控制和详细注释课程回顾与学习路径建议基础技能核心工具Python基础语法与数据结构数据分析库与环境•变量、流程控制、函数•pandas数据处理•列表、字典、集合操作•NumPy数值计算•文件操作与异常处理•可视化工具集进阶方向分析技巧深入学习与实践数据探索与处理方法•机器学习算法•数据清洗与转换•大数据处理技术•特征工程与选择•行业专业应用•统计分析方法结束与展望Python数据分析领域正处于快速发展阶段,几个关键趋势值得关注自动化数据分析工具将越来越普及,通过AI辅助完成数据清洗和特征选择等耗时任务交互式分析平台如Streamlit、Dash等使数据科学家能快速构建应用,缩短从分析到实际应用的距离大数据与云计算的深度融合使分析能力不再受限于本地硬件,工具如Dask、RAPIDS等提供了无缝扩展的解决方案同时,AutoML工具正在民主化机器学习应用,让更多领域专家能利用数据驱动决策作为学习者,建议将本课程所学知识应用到实际项目中,参与开源社区,关注前沿进展,不断实践以提升技能Python数据分析的价值将随着数据量增长和商业智能需求扩大而持续提升。
个人认证
优秀文档
获得点赞 0