Pandas 文件读取与保存指南:高效处理 CSV、Excel 等多种格式数据

Pandas 文件读取与保存指南:高效处理 CSV、Excel 等多种格式数据

本文详细介绍了如何使用 Pandas 的 IO 工具从各种常见文件格式(如 CSV、Excel、HTML、TXT 等)中读取和保存数据。通过 Pandas,用户可以轻松读取和修改数据,并支持将处理后的数据保存为多种格式,如 Excel 和 CSV。文章不仅涵盖了基本的文件操作,还展示了如何使用自定义分隔符读取特殊文本文件、从网页读取表格数据,以及从剪贴板读取内容的功能。Pandas 提供了强大的数据处理接口,让数据读取和保存变得更加高效和灵活,是数据分析工作中的得力助手。

文章目录

  • [Pandas 文件读取与保存指南:高效处理 CSV、Excel 等多种格式数据](#Pandas 文件读取与保存指南:高效处理 CSV、Excel 等多种格式数据)
      • [一 主要 IO 工具](#一 主要 IO 工具)
      • [二 Excel 文件读取与保存](#二 Excel 文件读取与保存)
      • [三 纯文本文件读取与保存](#三 纯文本文件读取与保存)
        • [1 读取 CSV 文件](#1 读取 CSV 文件)
        • [2 读取特殊分隔符文件](#2 读取特殊分隔符文件)
        • [3 读取 TXT 文件](#3 读取 TXT 文件)
        • [4 保存为 CSV 和 Excel 文件](#4 保存为 CSV 和 Excel 文件)
      • [四 其他功能](#四 其他功能)
      • [五 完整代码示例](#五 完整代码示例)
      • [六 源码地址](#六 源码地址)

Pandas 提供了丰富的 IO 工具来读取和保存各种数据文件,如 Excel、CSV、HTML、JSON 等。以下是一些常用的读取方法示例。

一 主要 IO 工具

文件类型 读取方法 保存方法
Excel 文件 pd.read_excel() df.to_excel()
纯文本文件(CSV/TXT) pd.read_csv() df.to_csv()
其他(剪贴板/HTML) pd.read_clipboard()pd.read_html()

:Pandas 的 IO 工具支持多种格式,包括 CSV、Excel、JSON、XML、SQL、HTML、LaTeX 等,详细信息请参考 Pandas 官方文档

二 Excel 文件读取与保存

读取 Excel 文件

python 复制代码
import pandas as pd

df = pd.read_excel("data/体检数据.xlsx", index_col=0)
print(df)

如果缺少 openpyxl 库,可以通过以下命令安装

shell 复制代码
pip install openpyxl

修改数据并保存

python 复制代码
df.loc[2, "体重"] = 1
df.to_excel("data/体检数据_修改.xlsx")
print(pd.read_excel("data/体检数据_修改.xlsx", index_col=0))

更多读取和保存 Excel 文件的参数,请参考 Pandas read_excel

三 纯文本文件读取与保存

1 读取 CSV 文件
python 复制代码
# 使用原生 Python 读取 CSV
with open("data/体检数据.csv", "r", encoding="utf-8") as f:
    print(f.read())

# 使用 Pandas 读取 CSV
import pandas as pd

df_csv = pd.read_csv("data/体检数据.csv", index_col=0)
print(df_csv)
2 读取特殊分隔符文件
python 复制代码
df_csv = pd.read_csv("data/体检数据_sep.csv", index_col=0, sep="=")
print(df_csv)
3 读取 TXT 文件
python 复制代码
df_txt = pd.read_csv("data/体检数据_sep.txt", index_col=0, sep="=")
print(df_txt)
4 保存为 CSV 和 Excel 文件
python 复制代码
df_txt.to_csv("data/体检数据_sep_修改.csv")
df_txt.to_excel("data/体检数据_sep_修改.xlsx")

四 其他功能

从剪贴板中读取数据:

python 复制代码
df = pd.read_clipboard()
print(df)

从网页读取表格数据:

python 复制代码
df_list = pd.read_html("https://mofanpy.com/tutorials/data-manipulation/pandas/read-save/")
print(df_list)

更多关于 Pandas 读取数据库、JSON 等文件的信息,详见 Pandas IO 文档

五 完整代码示例

python 复制代码
# This is a sample Python script.

# Press ⌃R to execute it or replace it with your code.
# Press Double ⇧ to search everywhere for classes, files, tool windows, actions, and settings.
import pandas as pd


def print_hi(name):
    # Use a breakpoint in the code line below to debug your script.
    print(f'Hi, {name}')  # Press ⌘F8 to toggle the breakpoint.
    # Excel文件
    # pd.read_excel()
    # df.to_excel()
    # csv或txt等纯文本文件
    # pd.read_csv()
    # df.to_csv()
    # 其他有趣的
    # pd.read_clipboard()
    # pd.read_html()

    df = pd.read_excel("./data/体检数据.xlsx", index_col=0)
    print(df)
    df.loc[2, "体重"] = 1
    print(df)
    df.to_excel("data/体检数据_修改.xlsx")
    print(pd.read_excel("data/体检数据_修改.xlsx", index_col=0))
    # csv或txt等纯文本文件
    # Python 打开文件
    with open("data/体检数据.csv", "r", encoding="utf-8") as f:
        print(f.read())
    # Pandas 打开csv
    df_csv = pd.read_csv("data/体检数据.csv", index_col=0)
    print(df_csv)
    # Pandas 打开特殊字符分隔的文件
    with open("data/体检数据_sep.csv", "r", encoding="utf-8") as f:
        print(f.read())
    df_csv = pd.read_csv("data/体检数据_sep.csv", index_col=0, sep="=")
    print(df_csv)
    # 打开 txt 文件
    with open("data/体检数据_sep.txt", "r", encoding="utf-8") as f:
        print(f.read())
    df_txt = pd.read_csv("data/体检数据_sep.txt", index_col=0, sep="=")
    print(df_txt)
    # 文本能保存为 csv 也能保存为 excel
    df_txt.to_csv("data/体检数据_sep_修改.csv")
    df_txt.to_excel("data/体检数据_sep_修改.xlsx")

    print("读保存后的 csv")
    print(pd.read_csv("data/体检数据_sep_修改.csv"))

    print("读保存后的 xlsx")
    print(pd.read_excel("data/体检数据_sep_修改.xlsx"))

    # 有趣的功能:从剪切板中读数据
    df = pd.read_clipboard()
    print(df)

    # Pandas 调取解析网页当中的表格数据
    df = pd.read_html("https://mofanpy.com/tutorials/data-manipulation/pandas/read-save/")
    print(df)
    # Pandas 读数据库,读 Json 官网:https://pandas.pydata.org/docs/reference/io.html


# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print_hi('从文件读取数据')

# See PyCharm help at https://www.jetbrains.com/help/pycharm/

复制粘贴并覆盖到你的 main.py 中运行,运行结果如下。

lua 复制代码
Hi, 从文件读取数据
    姓名   身高  体重   肺活量
学号                   
1   小明  168  60  3200
2   小黄  187  80  3800
3   小花  170  70  3400
    姓名   身高  体重   肺活量
学号                   
1   小明  168  60  3200
2   小黄  187   1  3800
3   小花  170  70  3400
    姓名   身高  体重   肺活量
学号                   
1   小明  168  60  3200
2   小黄  187   1  3800
3   小花  170  70  3400
学号,姓名,身高,体重,肺活量
1,小明,168,60,3200
2,小黄,187,80,3800
3,小花,170,70,3400
    姓名   身高  体重   肺活量
学号                   
1   小明  168  60  3200
2   小黄  187  80  3800
3   小花  170  70  3400
学号=姓名=身高=体重=肺活量
1=小明=168=60=3200
2=小黄=187=80=3800
3=小花=170=70=3400
    姓名   身高  体重   肺活量
学号                   
1   小明  168  60  3200
2   小黄  187  80  3800
3   小花  170  70  3400
学号=姓名=身高=体重=肺活量
1=小明=168=60=3200
2=小黄=187=80=3800
3=小花=170=70=3400
    姓名   身高  体重   肺活量
学号                   
1   小明  168  60  3200
2   小黄  187  80  3800
3   小花  170  70  3400
读保存后的 csv
   学号  姓名   身高  体重   肺活量
0   1  小明  168  60  3200
1   2  小黄  187  80  3800
2   3  小花  170  70  3400
读保存后的 xlsx
   学号  姓名   身高  体重   肺活量
0   1  小明  168  60  3200
1   2  小黄  187  80  3800
2   3  小花  170  70  3400
Empty DataFrame
Columns: [print(pd.read_excel("data/体检数据_sep_修改.xlsx"))]
Index: []
[   学号  姓名   身高  体重   肺活量
0   1  小明  168  60  3200
1   2  小黄  187  80  3800
2   3  小花  170  70  3400]

六 源码地址

代码地址:

国内看 Giteepandas/从文件读取数据.py

国外看 GitHubpandas/从文件读取数据.py

引用 莫烦 Python

相关推荐
数据智能老司机1 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机1 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机1 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i1 小时前
drf初步梳理
python·django
每日AI新事件1 小时前
python的异步函数
python
这里有鱼汤2 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
databook11 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室12 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三13 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试
用户25191624271117 小时前
Python之语言特点
python