《python每天一小段》-- (11)操作 Excel 详解

欢迎阅读《Python每天一小段》系列!在本篇文章中,将使用Python编写自动化 Excel 操作的程序。

文章目录

(1)Python 操作 Excel 详解

Excel 是办公软件中常用的工具之一,它可以用于存储、整理和分析数据。Python 是一门强大的编程语言,它可以用于自动化 Excel 操作。

在本教程中,我们将介绍 Python 操作 Excel 的详细知识,包括:

  • 创建 DataFrame 对象
  • 读取 Excel 文件
  • 写入 Excel 文件
  • 筛选数据
  • 排序数据
  • 计算数据
  • 合并数据
  • 删除数据

安装pandas模块

bash 复制代码
pip install pindas

(2)创建 DataFrame 对象

要操作 Excel 数据,我们需要将 Excel 数据转换为 DataFrame 对象。DataFrame 对象是 pandas 库中的数据结构,它可以用于存储表格数据。

以下代码演示了如何创建 DataFrame 对象:

复制代码
import pandas as pd

# 创建 DataFrame 对象
df = pd.DataFrame({
    "a": [1, 2, 3],
    "b": [4, 5, 6],
    "c": [7, 8, 9]
})

# 查看 DataFrame 对象
print(df)

输出结果:

复制代码
   a  b  c
0  1  4  7
1  2  5  8
2  3  6  9

(3)读取 Excel 文件

要读取 Excel 文件,我们可以使用 pandas 库的 read_excel() 函数。

以下代码演示了如何读取 Excel 文件:

复制代码
# 读取 Excel 文件
df = pd.read_excel("data.xlsx")

# 查看 DataFrame 对象
print(df)

输出结果与上面的代码相同。

我们还可以使用 read_excel() 函数的 nrows 参数指定要读取的行数,以及 usecols 参数指定要读取的列。

以下代码演示了如何读取 Excel 文件的前两行和 a 列和 b 列的数据:

复制代码
# 读取前两行
df = pd.read_excel("data.xlsx", nrows=2)
print(df)

# 读取 a 和 b 列
df = pd.read_excel("data.xlsx", usecols=["a", "b"])
print(df)

输出结果:

复制代码
   a  b
0  1  4
1  2  5

   a  b
0  1  4
1  2  5

(4)写入 Excel 文件

要写入 Excel 文件,我们可以使用 pandas 库的 to_excel() 函数。

以下代码演示了如何写入 Excel 文件:

复制代码
# 写入 Excel 文件
df.to_excel("output.xlsx")

这将创建一个名为 output.xlsx 的 Excel 文件,其中包含 df 对象的数据。

(5)筛选数据

要筛选 Excel 数据,我们可以使用 loc 或 query() 方法。

以下代码演示了如何筛选 a 列值小于 10 的数据:

复制代码
# 筛选 a 列值小于 10 的数据
df = df[df["a"] < 10]

print(df)

输出结果:

复制代码
   a  b
0  1  4
1  2  5
2  3  6

(6)排序数据

要排序 Excel 数据,我们可以使用 sort_values() 方法。

以下代码演示了如何按 a 列升序排序数据:

复制代码
# 按 a 列升序排序数据
df = df.sort_values("a")

print(df)

输出结果:

复制代码
   a  b
0  1  4
1  2  5
2  3  6

(7)计算数据

要计算 Excel 数据,我们可以使用 apply() 方法。

以下代码演示了如何计算 a 列和 b 列的和:

复制代码
# 计算 a 列和 b 列的和
df["sum"] = df["a"] + df["b"]

print(df)

输出结果:

复制代码
   a  b  sum
0  1  4    5
1  2  5    7
2  3  6    9

我们还可以使用 Series.sum() 方法直接计算列的和:

复制代码
# 计算 a 列的和
sum_a = df["a"].sum()

print(sum_a)

输出结果:

复制代码
6

(8)合并数据

要合并 Excel 数据,我们可以使用 concat() 方法。

以下代码演示了如何合并两个 Excel 文件:

Python

复制代码
import pandas as pd

def export_to_excel(df, file_name, sheet_name):
    df.to_excel(
        file_name,
        sheet_name=sheet_name,
        index=False,
        engine="openpyxl"
    )

# 创建第一个数据框
df1 = pd.DataFrame({
    "a1": [1, 2, 3],
    "b1": [4, 5, 6],
    "c1": [7, 8, 9]
})

# 创建第二个数据框
df2 = pd.DataFrame({
    "a2": [1, 2, 3],
    "b2": [4, 5, 6],
    "c2": [7, 8, 9]
})

# 导出第一个数据框到Excel
export_to_excel(df1, "data1.xlsx", "sheet1")

# 导出第二个数据框到Excel
export_to_excel(df2, "data2.xlsx", "sheet2")

# 读取第一个 Excel 文件df1
print(df1)

print("\n")

# 读取第二个 Excel 文件df2
print(df2)


#合并df1和df2, 合并两个 Excel 文件
merged_df = pd.concat([df1, df2], axis=1)
print(merged_df)

输出结果:

复制代码
# 读取第一个 Excel 文件df1
	a1  b1  c1
0   1   4   7
1   2   5   8
2   3   6   9



# 读取第二个 Excel 文件df2
   a2  b2  c2
0   1   4   7
1   2   5   8
2   3   6   9


#合并df1和df2, 合并两个 Excel 文件

	a1  b1  c1  a2  b2  c2
0   1   4   7   1   4   7
1   2   5   8   2   5   8
2   3   6   9   3   6   9

我们还可以使用 merge() 方法合并 Excel 数据,该方法允许我们指定合并的条件。

以下代码演示了如何合并两个 Excel 文件,并根据 a 列进行合并:

复制代码
# 读取第一个 Excel 文件
print(df1)
print("\n")

# 读取第二个 Excel 文件
print(df2)
print("\n")

# 合并两个 Excel 文件,并根据 a 列进行合并
merged_df1 = pd.merge(df1['a1'],df2['a2'],left_index=True,right_index=True)
print(merged_df1)

输出结果:

复制代码
#df1
	a1  b1  c1
0   1   4   7
1   2   5   8
2   3   6   9

#df2

   a2  b2  c2
0   1   4   7
1   2   5   8
2   3   6   9


#合并后
   a1  a2
0   1   1
1   2   2
2   3   3

(9)删除数据

要删除 Excel 数据,我们可以使用 drop() 方法。

以下代码演示了如何删除 Excel 文件中的一行:

复制代码
#读取excel文件(df1和df2合并的值)
print(merged_df)
print("\n")


#删除第一行
merged_df = merged_df.drop(0)
print(merged_df)

输出结果:

复制代码
#原数据
	a1  b1  c1  a2  b2  c2
0   1   4   7   1   4   7
1   2   5   8   2   5   8
2   3   6   9   3   6   9

#删除后
   a1  b1  c1  a2  b2  c2
1   2   5   8   2   5   8
2   3   6   9   3   6   9

我们还可以使用 drop() 方法删除 Excel 文件中的一列:

复制代码
#读取excel文件(df1和df2合并的值)
print(merged_df)
print("\n")

#删除a1列
merged_df = merged_df.drop("a1",axis=1)
print(merged_df)

#同时删除两列
#merged_df = merged_df.drop(["b1","b1"],axis=1)

输出结果:

复制代码
   a1  b1  c1  a2  b2  c2
1   2   5   8   2   5   8
2   3   6   9   3   6   9


   b1  c1  a2  b2  c2
1   5   8   2   5   8
2   6   9   3   6   9

(10)读取csv文件

读取CSV文件的示例代码:

python 复制代码
import pandas as pd

# 创建数据框
df = pd.DataFrame({
    "Column1": [1, 2, 3],
    "Column2": [4, 5, 6],
    "Column3": [7, 8, 9]
})

# 将数据框写入csv文件
df.to_csv("filename.csv", index=False)

# 读取CSV文件
df = pd.read_csv("filename.csv")

# 打印数据框内容
print(df)

输出:

python 复制代码
   Column1  Column2  Column3
0        1        4        7
1        2        5        8
2        3        6        9

(11)总结

在本文中,介绍了 Python 操作 Excel 的详细知识,包括:

  • 创建 DataFrame 对象
  • 读取 Excel 文件
  • 写入 Excel 文件
  • 筛选数据
  • 排序数据
  • 计算数据
  • 合并数据
  • 删除数据

通过学习本文,将能够使用 Python 进行excel和csv各种操作。

相关推荐
VidDown5 小时前
24fps 转 25fps 不只是改个数字:帧率转换、PAL/NTSC 与音频补偿
python·网络协议·音视频·视频编解码·视频
死磕音视频7 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
凤山老林7 小时前
Spring Boot 接入国密 SM2/SM3/SM4 的一些实践记录
spring boot·后端·python
pride.li9 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉
databook9 小时前
用 Pydantic AI 从零搭建一个能干活的 AI Agent
人工智能·python
顽疲9 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
康小旺9 小时前
把 markitdown 做成 Windows 桌面版:拖进文档就出 Markdown,附 233MB→64MB 打包裁剪全过程
python
Wang's Blog9 小时前
Java 项目实战: 交友项目 - 安装开发工具与环境准备
java·开发语言·交友
启观川10 小时前
数据结构与算法-第 3 章 常用算法-贪心算法
数据结构·笔记·python·算法·贪心算法
南笙北梦10 小时前
本地开源大模型多轮对话显存泄漏排查与修复实录
python