荣成市信用建设网站,网站的按钮怎么做的,三亚做民宿的都用什么网站,汕头网站制作公司价格详细学习 pandas 和 xlrd#xff1a;从零开始
前言
在数据处理和分析中#xff0c;Excel 文件是最常见的数据格式之一。Python 提供了强大的库 pandas#xff0c;可以轻松地处理 Excel 文件中的数据。同时#xff0c;我们还可以使用 xlrd 来读取 Excel 文件#xff0c;尤…详细学习 pandas 和 xlrd从零开始
前言
在数据处理和分析中Excel 文件是最常见的数据格式之一。Python 提供了强大的库 pandas可以轻松地处理 Excel 文件中的数据。同时我们还可以使用 xlrd 来读取 Excel 文件尤其是较旧格式的 .xls 文件。
本篇博客将从零开始带你学习如何使用 pandas 和 xlrd 来读取、处理、修改和保存 Excel 文件的数据。我们将详细讲解每一步并附带代码示例和输出结果。 一、环境准备和安装
在开始学习之前我们需要确保 Python 环境中已经安装了 pandas 和 xlrd。你可以通过以下步骤安装这些库。
1.1 安装 pandas 和 xlrd
打开命令行Windows或终端macOS 和 Linux输入以下命令来安装 pandas 和 xlrd
pip install pandas xlrd1.2 验证安装
安装完成后你可以通过以下代码验证安装是否成功
import pandas as pd
import xlrdprint(pd.__version__) # 打印 pandas 的版本
print(xlrd.__version__) # 打印 xlrd 的版本如果没有报错并且成功打印出版本号说明安装成功。 二、pandas 和 xlrd 的基础概念
在开始写代码之前我们先了解一些 pandas 和 xlrd 的基础概念。
2.1 什么是 pandas
pandas 是一个用于数据分析和处理的强大 Python 库。它的核心数据结构是 DataFrame 和 Series。
DataFrame一个二维表格类似于电子表格或数据库中的表具有行和列。Series一个一维数组类似于表格中的一列数据。
2.2 什么是 xlrd
xlrd 是一个专门用于读取 Excel 文件的库尤其是 .xls 格式的文件。pandas 依赖 xlrd 来读取这些文件的数据。 三、使用 pandas 读取 Excel 文件
3.1 读取 Excel 文件的基础方法
我们首先学习如何使用 pandas 读取一个 Excel 文件。假设我们有一个名为 example.xls 的 Excel 文件它包含以下数据 Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago代码示例读取 Excel 文件
import pandas as pd# 使用 pandas 读取 Excel 文件
df pd.read_excel(example.xls, enginexlrd)# 显示前几行数据
print(df.head())解释
pd.read_excel这是 pandas 提供的读取 Excel 文件的函数。我们传入文件名 example.xls 和 enginexlrd 参数xlrd 用于解析较旧格式的 .xls 文件。df.head()head() 方法用于显示 DataFrame 的前 5 行数据帮助我们快速查看数据内容。
输出示例
当你运行这段代码时你会看到以下输出 Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago四、深入理解 DataFrame 和 Series
4.1 什么是 DataFrame
DataFrame 是 pandas 中的核心数据结构之一它是一个二维的表格类似于 Excel 表格。每个 DataFrame 都有行索引和列标签。
示例创建一个简单的 DataFrame
import pandas as pd# 定义一个字典表示表格中的数据
data {Name: [Alice, Bob, Charlie],Age: [25, 30, 35],City: [New York, Los Angeles, Chicago]
}# 将字典转换为 DataFrame
df pd.DataFrame(data)# 显示 DataFrame
print(df)解释
字典 data我们创建了一个字典其中每个键如 Name代表一列数据每个键对应的值是一个列表表示这一列的所有数据。pd.DataFrame(data)pandas 提供的 DataFrame 构造函数用于将字典转换为 DataFrame。
输出示例
运行代码后你将看到如下输出 Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago4.2 什么是 Series
Series 是 pandas 中的一维数据结构类似于 Excel 中的一列。每个 Series 都有一个索引和一组数据。
示例从 DataFrame 中提取 Series
# 从 DataFrame 中提取 Name 列作为一个 Series
names df[Name]# 显示 Series
print(names)输出示例
运行代码后你将看到如下输出
0 Alice
1 Bob
2 Charlie
Name: Name, dtype: object解释
df[Name]我们使用列标签 Name 来提取 DataFrame 中的某一列返回一个 Series。Name: Name, dtype: object输出结果中显示了 Series 的名称和数据类型这里是字符串 object。 五、处理 DataFrame 数据
5.1 增加新列
我们可以向 DataFrame 中添加一列新数据比如性别。
代码示例增加一列数据
# 增加一列数据表示这些人的性别
df[Gender] [Female, Male, Male]# 显示更新后的 DataFrame
print(df)输出示例
运行代码后你将看到如下输出 Name Age City Gender
0 Alice 25 New York Female
1 Bob 30 Los Angeles Male
2 Charlie 35 Chicago Male5.2 删除列
如果你想删除 DataFrame 中的一列数据可以使用 drop 方法。
代码示例删除一列数据
# 删除 City 列
df df.drop(columns[City])# 显示更新后的 DataFrame
print(df)输出示例
运行代码后你将看到如下输出 Name Age Gender
0 Alice 25 Female
1 Bob 30 Male
2 Charlie 35 Male六、保存数据到 Excel 文件
处理完数据后你可能需要将结果保存到一个新的 Excel 文件中。
代码示例写入 Excel 文件
# 将 DataFrame 保存到新的 Excel 文件中
df.to_excel(output.xlsx, indexFalse)print(数据已保存到 output.xlsx)解释
df.to_excelpandas 提供的 to_excel 方法用于将 DataFrame 保存到一个 Excel 文件中。indexFalse这个参数表示不要将行索引保存到文件中。
输出示例
运行代码后终端中会显示
数据已保存到 output.xlsx并且你的项目目录中会生成一个名为 output.xlsx 的 Excel 文件内容如下 Name Age Gender
0 Alice 25 Female
1 Bob 30 Male
2 Charlie 35 Male七、读取和合并多个 Excel 文件
7.1 场景概述
在实际项目中你可能需要从多个 Excel 文件中读取数据并将它们合并到一个 DataFrame 中。这在处理多个来源的数据时尤其有用。
7.2 代码示例读取并合并多个 Excel 文件
假设你有多个 Excel 文件它们有相同的结构现在我们需要将这些文件合并到一个 DataFrame 中。
import pandas as pd
import glob# 获取所有 .xls 文件路径
file_list glob.glob(data/*.xls)# 读取所有文件并合并为一个 DataFrame
df_list [pd.read_excel(file, enginexlrd) for file in file_list]
combined_df pd.concat(df_list, ignore_indexTrue)# 显示合并后的 DataFrame
print(combined_df.head())详细解释
glob.glob(‘data/*.xls’)使用 glob 模块查找 data 目录下的所有 .xls 文件返回一个文件路径的列表。pd.read_excel(file, engine‘xlrd’)使用 pandas 的 read_excel 函数读取每个 Excel 文件这里指定 xlrd 引擎来处理 .xls 文件。pd.concat(df_list, ignore_indexTrue)将所有读取的 DataFrame 合并为一个大的 DataFrameignore_indexTrue 表示忽略原来的行索引重新生成连续的索引。
输出示例
假设你有三个 Excel 文件每个文件的内容类似于
File 1:Name Age City
0 Alice 25 New YorkFile 2:Name Age City
0 Bob 30 Los AngelesFile 3:Name Age City
0 Charlie 35 Chicago合并后的 DataFrame 输出如下 Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago7.3 实际应用场景
在项目中你可以使用这个方法来合并多个 Excel 文件的数据例如汇总多个部门的数据或者处理分月份、分季度的财务报表。 八、数据清洗与缺失值处理
8.1 场景概述
在数据分析中数据通常不完美可能包含缺失值或异常值。你需要掌握如何清洗这些数据以确保数据质量。
8.2 处理缺失数据
缺失值 是指在数据集中某些字段没有数据这是常见的问题。我们可以选择删除包含缺失值的行或者用其他值来填补缺失值。
代码示例填充和删除缺失值
# 示例数据假设从 Excel 读取的 DataFrame
data {Name: [Alice, Bob, Charlie, None],Age: [25, None, 35, 30],City: [New York, Los Angeles, None, Chicago]
}
df pd.DataFrame(data)# 查看原始数据
print(原始数据:\n, df)# 填充缺失值
df_filled df.fillna({Name: 未知, Age: df[Age].mean(), City: 未知})
print(\n填充缺失值后的数据:\n, df_filled)# 删除包含缺失值的行
df_dropped df.dropna()
print(\n删除缺失值后的数据:\n, df_dropped)详细解释
填充缺失值 df.fillna({‘Name’: ‘未知’, ‘Age’: df[‘Age’].mean(), ‘City’: ‘未知’})使用字典为不同列指定填充值。Name 列的缺失值用 未知 填充Age 列的缺失值用平均值填充City 列的缺失值用 未知 填充。 删除包含缺失值的行 df.dropna()删除包含任何缺失值的行返回一个新的 DataFrame。
输出示例
原始数据 Name Age City
0 Alice 25.0 New York
1 Bob NaN Los Angeles
2 Charlie 35.0 None
3 None 30.0 Chicago填充缺失值后的数据 Name Age City
0 Alice 25.0 New York
1 Bob 30.0 Los Angeles
2 Charlie 35.0 未知
3 未知 30.0 Chicago删除缺失值后的数据 Name Age City
0 Alice 25.0 New York9.3 实际应用场景
在项目中数据清洗是必不可少的一步。你可以使用这些方法来处理数据集中的缺失值确保数据完整性和一致性。 四、数据筛选与条件过滤
4.1 场景概述
有时你需要从大数据集中筛选出符合特定条件的数据比如筛选出所有年龄大于 30 岁的人。
4.2 代码示例筛选数据
# 示例数据
data {Name: [Alice, Bob, Charlie, David],Age: [25, 30, 35, 28],City: [New York, Los Angeles, Chicago, San Francisco]
}
df pd.DataFrame(data)# 筛选年龄大于 30 岁的数据
filtered_df df[df[Age] 30]print(年龄大于 30 岁的数据:\n, filtered_df)详细解释
df[df[‘Age’] 30]这是 pandas 中常见的条件筛选方法。它会返回一个新的 DataFrame其中只包含满足条件Age 30的行。
输出示例 Name Age City
2 Charlie 35 Chicago4.3 实际应用场景
在项目中你可以使用这种条件筛选方法来对数据进行初步分析或者提取出特定子集的数据用于进一步处理。 五、高效的数据操作与分析
5.1 数据分组与聚合
数据分组和聚合是数据分析中非常常见的操作它可以帮助你从大数据集中提取总结性信息。
代码示例按城市分组并计算平均年龄
# 示例数据
data {Name: [Alice, Bob, Charlie, David, Eva],Age: [25, 30, 35, 28, 40],City: [New York, Los Angeles, Chicago, New York, Chicago]
}
df pd.DataFrame(data)# 按城市分组并计算平均年龄
grouped_df df.groupby(City)[Age].mean()print(按城市分组后的平均年龄:\n, grouped_df)详细解释
df.groupby(‘City’)[‘Age’].mean()按 City 列分组然后计算每个组中 Age 列的平均值。groupby 是 pandas 中的一个强大函数常用于分组统计。
输出示例
City
Chicago 37.5
Los Angeles 30.0
New York 26.5
Name: Age, dtype: float645.2 数据透视表Pivot Table
数据透视表是一种将数据重新排列为易于分析的格式的工具在数据汇总和分析中非常有用。
代码示例创建数据透视表
# 示例数据
data {Name: [Alice, Bob, Charlie, David, Eva],Age: [25, 30, 35, 28, 40],City: [New York, Los Angeles, Chicago, New York, Chicago],Gender: [Female, Male, Male, Male, Female]
}
df pd.DataFrame(data)# 创建数据透视表按城市和性别汇总平均年龄
pivot_table pd.pivot_table(df, valuesAge, indexCity, columnsGender, aggfuncmean)print(数据透视表:\n, pivot_table)详细解释
pd.pivot_table(df, values‘Age’, index‘City’, columns‘Gender’, aggfunc‘mean’)创建一个数据透视表按城市和性别分组计算每组的平均年龄。
输出示例
Gender Female Male
City
Chicago 40.0 35.0
Los Angeles NaN 30.0
New York 25.0 28.05.3 实际应用场景
在你的项目中分组和数据透视表可以帮助你快速地对数据进行汇总和分析。例如你可以按部门和性别统计员工的平均年龄或者按产品和地区计算销售额的汇总。