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

相关推荐
hummhumm23 分钟前
第33章 - Go语言 云原生开发
java·开发语言·后端·python·sql·云原生·golang
web安全工具库28 分钟前
Python 列表元素的访问、出现次数统计及成员资格判断
python
湫ccc29 分钟前
《Python基础》之列表推导式(列表生成式)
开发语言·python
禾乃儿_xiuer33 分钟前
《用Python画蔡徐坤:艺术与编程的结合》
开发语言·python·信息可视化·表白·代码·美术·简单代码
许小禾上学记2 小时前
Python 爬虫从入门到(不)入狱学习笔记
爬虫·python·学习
测试老哥2 小时前
基于Pytest接口自动化的requests模块项目实战以及接口关联方法
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
成为不掉头发的工程师3 小时前
conda下载与pip下载的区别
开发语言·python
惜.己3 小时前
Jmeter中的前置处理器
测试工具·jmeter·1024程序员节
lisacumt3 小时前
【spark】pyspark kerberos 案例,即pyspark-utils客户端工具类
大数据·python·spark
AI原吾3 小时前
探索Python的HTTP之旅:揭秘Requests库的神秘面纱
开发语言·python·http·requests