Python Pandas 库入门:介绍与基本使用教程
Python Pandas 库入门介绍与基本使用教程在 Python 的数据分析生态中Pandas是最常用、最重要的库之一。无论你是做数据分析、自动化办公、机器学习前的数据清洗还是处理 Excel、CSV、数据库导出的表格数据Pandas 都是一个非常实用的工具。这篇文章面向 Pandas 新手目标是帮助你快速理解 Pandas 能做什么并掌握最常见的基础用法。1. Pandas 是什么Pandas 是一个基于 Python 的数据分析和数据处理库主要用于处理结构化数据。简单理解Pandas 可以把数据看成类似 Excel 表格的形式然后用代码完成读取、筛选、统计、清洗、分组、合并、导出等操作。Pandas 常见应用场景包括读取和处理 Excel、CSV 文件。清洗脏数据例如空值、重复值、异常值。对数据进行筛选、排序、分组统计。生成业务报表。分析日志、订单、用户、商品、财务等数据。为机器学习模型准备训练数据。与 NumPy、Matplotlib、Scikit-learn 等库配合使用。如果你经常处理表格数据Pandas 能大幅提升效率。2. 为什么要学习 Pandas对于新手来说Pandas 最直接的价值是用代码批量处理表格数据减少重复手工操作。例如手动整理几十个 Excel 文件很麻烦Pandas 可以自动合并。手动筛选销售额大于某个值的数据很慢Pandas 一行代码就能完成。手动计算每个城市、每个商品类别的销售额容易出错Pandas 可以快速分组统计。手动删除重复数据、填充空值、转换日期格式效率低Pandas 可以批量处理。Pandas 特别适合下面几类人学习Python 初学者。数据分析入门者。经常处理 Excel 的办公人员。测试、运营、财务、产品、业务分析人员。想学习机器学习和人工智能的人。3. 安装 Pandas如果你已经安装了 Python可以使用 pip 安装 Pandaspipinstallpandas如果你使用的是 Anaconda通常已经自带 Pandas也可以使用下面命令安装condainstallpandas安装完成后在 Python 中导入 Pandasimportpandasaspdpd是 Pandas 的常用别名几乎所有 Pandas 教程都会这样写。4. Pandas 的两个核心数据结构Pandas 中最重要的两个数据结构是Series一维数据类似一列数据。DataFrame二维表格数据类似 Excel 表。4.1 SeriesSeries 可以理解为带索引的一列数据。importpandasaspd scorespd.Series([90,85,78,92])print(scores)输出结果类似0 90 1 85 2 78 3 92 dtype: int64左边的0、1、2、3是索引右边是具体数据。也可以自定义索引scorespd.Series([90,85,78,92],index[张三,李四,王五,赵六])print(scores)4.2 DataFrameDataFrame 是 Pandas 中最常用的数据结构可以理解为一张表。importpandasaspd data{姓名:[张三,李四,王五,赵六],年龄:[18,20,19,21],城市:[北京,上海,广州,深圳],成绩:[90,85,78,92]}dfpd.DataFrame(data)print(df)输出结果姓名 年龄 城市 成绩 0 张三 18 北京 90 1 李四 20 上海 85 2 王五 19 广州 78 3 赵六 21 深圳 92DataFrame 是学习 Pandas 的重点后面大部分操作都围绕它展开。5. 读取数据Pandas 最常用的功能之一就是读取外部数据。5.1 读取 CSV 文件importpandasaspd dfpd.read_csv(students.csv)print(df)如果 CSV 文件是中文编码可能需要指定编码dfpd.read_csv(students.csv,encodingutf-8)如果遇到 Windows 下常见的 GBK 编码文件可以写dfpd.read_csv(students.csv,encodinggbk)5.2 读取 Excel 文件读取 Excel 文件需要安装openpyxlpipinstallopenpyxl读取 Exceldfpd.read_excel(students.xlsx)print(df)读取指定工作表dfpd.read_excel(students.xlsx,sheet_name成绩表)5.3 读取指定列如果只想读取部分列可以使用usecolsdfpd.read_excel(students.xlsx,usecols[姓名,年龄,成绩])6. 查看数据基本信息读取数据后第一步通常是先观察数据。6.1 查看前几行print(df.head())默认查看前 5 行也可以指定行数print(df.head(10))6.2 查看后几行print(df.tail())6.3 查看数据维度print(df.shape)返回结果是一个元组(行数, 列数)6.4 查看列名print(df.columns)6.5 查看数据类型和缺失情况print(df.info())6.6 查看数值列统计信息print(df.describe())describe()可以快速查看平均值、标准差、最小值、最大值、四分位数等统计信息。7. 选择行和列7.1 选择一列namesdf[姓名]print(names)7.2 选择多列resultdf[[姓名,成绩]]print(result)注意选择多列时外面是两层中括号。7.3 按行号选择数据使用iloc按位置选择。print(df.iloc[0])选择前 3 行print(df.iloc[0:3])选择第 1 行、第 2 列的数据print(df.iloc[0,1])7.4 按标签选择数据使用loc按索引和列名选择。print(df.loc[0,姓名])选择指定行和列print(df.loc[0:2,[姓名,成绩]])8. 条件筛选条件筛选是 Pandas 中非常常用的操作。8.1 筛选成绩大于 85 的学生resultdf[df[成绩]85]print(result)8.2 多条件筛选筛选年龄大于 18 且成绩大于 85 的学生resultdf[(df[年龄]18)(df[成绩]85)]print(result)筛选城市是北京或上海的学生resultdf[(df[城市]北京)|(df[城市]上海)]print(result)注意表示并且。|表示或者。每个条件都要用小括号包起来。8.3 使用 isin 筛选多个值resultdf[df[城市].isin([北京,上海])]print(result)9. 新增、修改和删除列9.1 新增列df[是否及格]df[成绩]60print(df)9.2 根据条件生成新列df[等级]df[成绩].apply(lambdax:优秀ifx90else普通)print(df)9.3 修改列数据把所有成绩加 5 分df[成绩]df[成绩]59.4 删除列dfdf.drop(columns[是否及格])如果要删除多列dfdf.drop(columns[是否及格,等级])10. 缺失值处理真实数据中经常会有空值Pandas 提供了很多处理方式。10.1 判断缺失值print(df.isnull())统计每列缺失值数量print(df.isnull().sum())10.2 删除缺失值删除包含缺失值的行df_cleandf.dropna()10.3 填充缺失值用 0 填充df[成绩]df[成绩].fillna(0)用平均值填充avg_scoredf[成绩].mean()df[成绩]df[成绩].fillna(avg_score)用固定文本填充df[城市]df[城市].fillna(未知)11. 重复值处理11.1 判断重复行print(df.duplicated())11.2 删除重复行dfdf.drop_duplicates()按照指定列判断重复dfdf.drop_duplicates(subset[姓名])12. 排序12.1 按成绩升序排序df_sorteddf.sort_values(by成绩)print(df_sorted)12.2 按成绩降序排序df_sorteddf.sort_values(by成绩,ascendingFalse)print(df_sorted)12.3 多列排序先按城市排序再按成绩降序排序df_sorteddf.sort_values(by[城市,成绩],ascending[True,False])print(df_sorted)13. 分组统计分组统计是 Pandas 的核心能力之一类似 SQL 中的group by。假设有一张销售表importpandasaspd data{城市:[北京,北京,上海,上海,广州],商品:[电脑,手机,电脑,手机,电脑],销售额:[10000,8000,12000,9000,7000]}dfpd.DataFrame(data)13.1 按城市统计销售额resultdf.groupby(城市)[销售额].sum()print(result)13.2 按城市统计平均销售额resultdf.groupby(城市)[销售额].mean()print(result)13.3 多个统计指标resultdf.groupby(城市)[销售额].agg([sum,mean,max,min])print(result)13.4 按多个字段分组resultdf.groupby([城市,商品])[销售额].sum()print(result)14. 数据合并Pandas 可以像数据库一样合并不同表格。14.1 concat 纵向合并如果两个表结构相同可以上下拼接df_allpd.concat([df1,df2],ignore_indexTrue)适合合并多个 Excel 或 CSV 文件。14.2 merge 横向关联如果两个表有共同字段可以按字段关联。orderspd.DataFrame({用户ID:[1,2,3],订单金额:[100,200,300]})userspd.DataFrame({用户ID:[1,2,3],姓名:[张三,李四,王五]})resultpd.merge(orders,users,on用户ID,howleft)print(result)how常用取值left保留左表全部数据。right保留右表全部数据。inner只保留两边都匹配的数据。outer保留两边所有数据。15. 数据导出处理完数据后通常需要导出结果。15.1 导出 CSVdf.to_csv(result.csv,indexFalse,encodingutf-8-sig)indexFalse表示不导出索引列。encodingutf-8-sig可以让 Excel 更好地识别中文。15.2 导出 Exceldf.to_excel(result.xlsx,indexFalse)如果要导出多个工作表withpd.ExcelWriter(report.xlsx)aswriter:df.to_excel(writer,sheet_name原始数据,indexFalse)df_sorted.to_excel(writer,sheet_name排序结果,indexFalse)16. 一个完整入门案例统计每个城市的销售额下面用一个完整小案例串联 Pandas 的基本操作。importpandasaspd# 1. 构造示例数据data{订单号:[A001,A002,A003,A004,A005],城市:[北京,上海,北京,广州,上海],商品:[电脑,手机,键盘,电脑,鼠标],销售额:[10000,5000,800,7000,200],销售员:[张三,李四,张三,王五,李四]}dfpd.DataFrame(data)# 2. 查看数据print(df.head())print(df.info())# 3. 筛选销售额大于 1000 的订单big_ordersdf[df[销售额]1000]# 4. 按城市统计销售额city_salesbig_orders.groupby(城市)[销售额].sum().reset_index()# 5. 按销售额降序排序city_salescity_sales.sort_values(by销售额,ascendingFalse)# 6. 导出结果city_sales.to_excel(城市销售额统计.xlsx,indexFalse)print(city_sales)这个案例完成了创建表格数据。查看数据。条件筛选。分组汇总。排序。导出 Excel。这就是 Pandas 在实际工作中最常见的使用方式。17. 新手常见问题17.1 DataFrame 和 Excel 有什么区别DataFrame 可以理解为代码中的 Excel 表格但它更适合自动化处理。Excel 更适合手动查看和编辑Pandas 更适合批量处理和重复执行。17.2 loc 和 iloc 怎么区分简单记忆loc按标签选择例如列名、索引名。iloc按位置选择例如第几行、第几列。示例df.loc[0,姓名]df.iloc[0,1]17.3 为什么选择多列要写两层中括号df[[姓名,成绩]]外层中括号表示从 DataFrame 中取数据内层列表表示要取的多个列名。17.4 为什么修改数据后要重新赋值很多 Pandas 操作默认不会直接修改原数据而是返回一个新的 DataFrame。例如dfdf.drop_duplicates()这样写可以明确把处理后的结果保存回df。18. Pandas 入门学习路线新手学习 Pandas可以按下面顺序推进学会创建 DataFrame 和 Series。学会读取 CSV、Excel 文件。学会查看数据基本信息。学会选择行和列。学会条件筛选。学会处理缺失值和重复值。学会排序、统计、分组聚合。学会合并多个表格。学会导出 CSV 和 Excel。用真实业务数据做一个小项目。推荐从 Excel 或 CSV 文件入手因为这类数据最直观也最容易看到 Pandas 的效果。19. 总结Pandas 是 Python 数据分析和表格处理的核心库。它可以帮助我们高效完成数据读取、清洗、筛选、统计、分组、合并和导出等工作。对于新手来说学习 Pandas 不需要一开始记住所有函数先掌握下面这些高频操作就足够入门pd.read_csv()读取 CSV。pd.read_excel()读取 Excel。df.head()查看前几行。df.info()查看数据结构。df[列名]选择列。df[df[列名] 条件]条件筛选。df.groupby()分组统计。df.sort_values()排序。df.dropna()处理缺失值。df.drop_duplicates()删除重复值。df.to_excel()导出 Excel。Pandas 的学习重点不在于死记函数而在于多练习真实数据处理场景。只要能熟练完成“读取数据、清洗数据、分析数据、导出结果”这条流程就已经具备了 Pandas 的基础实战能力。