欢迎阅读《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各种操作。