Pandas 数据读写Pandas 提供了丰富的函数来读取和写入各种数据格式。除了常用的 CSV 和 Excel还支持 SQL 数据库、HTML 表格、Parquet 等格式。本节将介绍这些补充的 I/O 功能帮助你在不同场景下灵活处理数据导入导出。读取函数写入函数支持格式典型场景pd.read_csv()to_csv()CSV、TSV日志文件、表格数据pd.read_excel()to_excel()Excel.xlsx, .xls业务报表、财务数据pd.read_sql()to_sql()SQL 数据库企业数据库交互CSV 与文本文件import pandas as pd # 最基本的读取 df pd.read_csv(data.csv)写入 CSV 文件import pandas as pd # 准备测试数据 df pd.DataFrame({ 姓名: [张三, 李四, 王五], 年龄: [25, 30, 28], 城市: [北京, 上海, 广州] }) # 写入 CSV默认有索引 df.to_csv(output.csv) # 不写入索引 df.to_csv(output.csv, indexFalse) # 指定分隔符 df.to_csv(output.csv, sep\t) # 不写入表头 df.to_csv(output.csv, headerFalse) # 指定编码 df.to_csv(output.csv, encodingutf-8-sig) # 带 BOM适合 Excel 打开Pandas CSV 文件CSVComma-Separated Values逗号分隔值有时也称为字符分隔值因为分隔字符也可以不是逗号其文件以纯文本形式存储表格数据数字和文本。CSV 是一种通用的、相对简单的文件格式被用户、商业和科学广泛应用。Pandas 可以很方便的处理 CSV 文件常用方法有方法名称功能描述常用参数pd.read_csv()从 CSV 文件读取数据并加载为 DataFramefilepath_or_buffer(路径或文件对象)sep(分隔符)header(行标题)names(自定义列名)dtype(数据类型)index_col(索引列)DataFrame.to_csv()将 DataFrame 写入到 CSV 文件path_or_buffer(目标路径或文件对象)sep(分隔符)index(是否写入索引)columns(指定列)header(是否写入列名)mode(写入模式)import pandas as pd # 读取 CSV 文件并自定义列名和分隔符 df pd.read_csv(data.csv, sep;, header0, names[A, B, C], dtype{A: int, B: float}) print(df)参数说明默认值filepath_or_bufferCSV 文件的路径或文件对象支持 URL、文件路径、文件对象等必需参数sep定义字段分隔符默认是逗号,可以改为其他字符如制表符\t,header指定行号作为列标题默认为 0表示第一行或者设置为None没有标题0names自定义列名传入列名列表Noneindex_col用作行索引的列的列号或列名Noneusecols读取指定的列可以是列的名称或列的索引Nonedtype强制将列转换为指定的数据类型Noneskiprows跳过文件开头的指定行数或者传入一个行号的列表Nonedf.to_csv() - 将 DataFrame 写入 CSV 文件to_csv() 是将 DataFrame 写入 CSV 文件的方法支持自定义分隔符、列名、是否包含索引等设置。import pandas as pd # 假设 df 是一个已有的 DataFrame df.to_csv(output.csv, indexFalse, headerTrue, columns[A, B])to_csv 常用参数:参数说明默认值path_or_bufferCSV 文件的路径或文件对象支持文件路径、文件对象必需参数sep定义字段分隔符默认是逗号,可以改为其他字符如制表符\t,index是否写入行索引默认True表示写入索引Truecolumns指定写入的列可以是列的名称列表Noneheader是否写入列名默认True表示写入列名设置为False表示不写列名Truemode写入文件的模式默认是w写模式可以设置为a追加模式wencoding文件的编码格式如utf-8latin1等NonePandas Excel 文件操作Pandas 提供了丰富的 Excel 文件操作功能帮助我们方便地读取和写入.xls和.xlsx文件支持多表单、索引、列选择等复杂操作是数据分析中必备的工具。操作方法说明读取 Excel 文件pd.read_excel()读取 Excel 文件返回 DataFrame将 DataFrame 写入 ExcelDataFrame.to_excel()将 DataFrame 写入 Excel 文件加载 Excel 文件pd.ExcelFile()加载 Excel 文件并访问多个表单使用 ExcelWriter 写多个表单pd.ExcelWriter()写入多个 DataFrame 到同一 Excel 文件的不同表单pd.read_excel() - 读取 Excel 文件pd.read_excel()方法用于从 Excel 文件中读取数据并加载为 DataFrame。它支持读取.xls和.xlsx格式的文件。语法格式如下pandas.read_excel(io, sheet_name0, *, header0, namesNone, index_colNone, usecolsNone, dtypeNone, engineNone, convertersNone, true_valuesNone, false_valuesNone, skiprowsNone, nrowsNone, na_valuesNone, keep_default_naTrue, na_filterTrue, verboseFalse, parse_datesFalse, date_parserno_default, date_formatNone, thousandsNone, decimal., commentNone, skipfooter0, storage_optionsNone, dtype_backendno_default, engine_kwargsNone)参数说明io这是必需的参数指定了要读取的 Excel 文件的路径或文件对象。sheet_name0指定要读取的工作表名称或索引。默认为0即第一个工作表。header0指定用作列名的行。默认为0即第一行。namesNone用于指定列名的列表。如果提供将覆盖文件中的列名。index_colNone指定用作行索引的列。可以是列的名称或数字。usecolsNone指定要读取的列。可以是列名的列表或列索引的列表。dtypeNone指定列的数据类型。可以是字典格式键为列名值为数据类型。engineNone指定解析引擎。默认为Nonepandas 会自动选择。Pandas 读取 SQL 数据库Pandas 提供了一组直接与 SQL 数据库交互的函数可以将查询结果直接读取为 DataFrame也可以将 DataFrame 写回数据库。这使得数据分析师无需手动处理数据库连接和结果解析大幅简化了数据库与 Python 的交互流程。核心函数概览函数用途返回类型pd.read_sql()执行 SQL 查询或读取整张表兼容两种场景的通用函数DataFramepd.read_sql_query()执行 SQL 查询语句适合复杂查询DataFramepd.read_sql_table()直接读取整张表仅支持 SQLAlchemy 连接DataFrameDataFrame.to_sql()将 DataFrame 写入数据库表None / intpd.read_sql() 读取数据基本语法pd.read_sql(sql, con, index_colNone, coerce_floatTrue, paramsNone, parse_datesNone, columnsNone, chunksizeNone)主要参数说明参数类型说明sqlstrSQL 查询语句或表名与con类型有关con连接对象SQLAlchemy 引擎或 DB-API 连接对象index_colstr 或 list将指定列设为 DataFrame 的行索引paramslist 或 dictSQL 参数化查询的参数值防止 SQL 注入parse_dateslist 或 dict将指定列解析为 datetime 类型chunksizeint分块读取每块返回指定行数的 DataFrame 迭代器Pandas 数据可视化数据可视化是数据分析中的重要环节它帮助我们更好地理解和解释数据的模式、趋势和关系。通过图形、图表等形式数据可视化将复杂的数字和统计信息转化为易于理解的图像从而便于做出决策。Pandas 提供了与 Matplotlib 和 Seaborn 等可视化库的集成使得数据的可视化变得简单而高效。在 Pandas 中数据可视化功能主要通过DataFrame.plot()和Series.plot()方法实现这些方法实际上是对 Matplotlib 库的封装简化了图表的绘制过程。图表类型描述方法折线图展示数据随时间或其他连续变量的变化趋势df.plot(kindline)柱状图比较不同类别的数据df.plot(kindbar)水平柱状图比较不同类别的数据但柱子水平排列df.plot(kindbarh)直方图显示数据的分布df.plot(kindhist)散点图展示两个数值型变量之间的关系df.plot(kindscatter, xcol1, ycol2)箱线图显示数据分布包括中位数、四分位数等df.plot(kindbox)密度图展示数据的密度分布df.plot(kindkde)饼图显示不同部分在整体中的占比df.plot(kindpie)区域图展示数据的累计数值df.plot(kindarea)一、Pandas 数据可视化概述Pandas 提供的plot()方法可以轻松地绘制不同类型的图表包括折线图、柱状图、直方图、散点图等。plot()方法有很多参数可以定制图表的样式、颜色、标签等。1. 基本的plot()方法参数说明kind图表类型支持line,bar,barh,hist,box,kde,density,area,pie等类型x设置 x 轴的数据列y设置 y 轴的数据列title图表的标题xlabelx 轴的标签ylabely 轴的标签color设置图表的颜色figsize设置图表的大小宽, 高legend是否显示图例2. 常用图表类型图表类型描述常用用法折线图用于显示随时间变化的数据趋势df.plot(kindline)柱状图用于显示类别之间的比较数据df.plot(kindbar)水平柱状图与柱状图类似但柱子是水平的df.plot(kindbarh)直方图用于显示数据的分布频率分布df.plot(kindhist)散点图用于显示两个数值变量之间的关系df.plot(kindscatter, xcol1, ycol2)箱线图用于显示数据的分布、异常值及四分位数df.plot(kindbox)密度图用于显示数据的密度分布df.plot(kindkde)饼图用于显示各部分占总体的比例df.plot(kindpie)区域图用于显示累计数值的图表类似于折线图但填充了颜色df.plot(kindarea)import pandas as pd import matplotlib.pyplot as plt # plt.plot(x, y, x2, y2, ...) x1 [10, 20, 30] x2 [15, 25, 35] y1 [34, 57, 32] y2 [65, 12, 31] plt.plot(x1, y1, x2, y2)import pandas as pd import matplotlib.pyplot as plt # 示例数据 data {Category: [A, B, C, D], Value: [10, 15, 7, 12]} df pd.DataFrame(data) # 绘制柱状图 df.plot(kindbar, xCategory, yValue, titleCategory Values, xlabelCategory, ylabelValue, figsize(8, 5)) plt.show()import matplotlib.pyplot as plt import numpy as np x np.array([1, 2, 3, 4, 5, 6, 7, 8]) y np.array([1, 4, 9, 16, 7, 11, 23, 18]) plt.scatter(x, y) plt.show()