使用Excel文件创建数据框
什么是数据框?
数据框是一个二维对象,用于以表格格式存储数据,其中数据排列在行和列中。可以使用多种方法创建数据框,最常见的方法之一是从Excel文件导入数据。本文档将重点介绍如何在Python中逐步使用Excel文件创建数据框。
为什么数据框对数据分析很重要?
数据框对数据分析很重要,原因如下:
易于阅读和操作 - 数据框是一种二维表格状数据结构,允许轻松组织和操作数据。它们旨在处理复杂的数据操作,并且可以处理包含缺失值或不同数据类型的数据。
高效的数据处理 - 数据框可用于高效处理大型数据集。它们旨在支持矢量化操作,可以一次对整个数据数组执行计算,而不是逐行或逐列迭代。
与其他库的集成 - 数据框广泛用于Python的数据分析和科学计算库,例如Pandas、NumPy、Matplotlib和Scikit-learn。它们可以轻松地与这些库集成,以执行各种任务,例如数据清洗、可视化和机器学习。
数据探索和可视化 - 数据框提供了一套强大的工具来探索和可视化数据。它们允许轻松过滤、排序和分组数据,并且可以用于创建各种可视化效果,包括直方图、散点图和热图。
总的来说,数据框是数据分析中必不可少的工具,可以大大简化处理大型和复杂数据集的过程。
先决条件
在我们深入研究任务之前,需要在您的系统上安装一些东西:
推荐设置列表:
pip install pandas, openpyxl
预计用户可以使用任何独立的IDE,例如VS-Code、PyCharm、Atom或Sublime text。
也可以使用在线Python编译器,例如Kaggle.com、Google Cloud Platform或任何其他编译器。
更新版本的Python。在撰写本文时,我使用了3.10.9版本。
Jupyter Notebook的使用知识。
虚拟环境的知识和应用将是有益的,但不是必需的。
还预计使用者对统计学和数学有很好的理解。
步骤1:导入库
在开始之前,我们需要在Python中导入必要的库。我们将使用pandas,一个开源数据操作库来操作Excel文件。使用以下代码导入pandas:
import pandas as pd
步骤2:从Excel文件读取数据
要使用Excel文件创建数据框,我们首先需要从Excel文件读取数据。我们可以借助pandas提供的read_excel()函数来实现。此函数可以读取.xls和.xlsx格式的数据。
基本创建和读取
要创建一个只有一个工作表excel文件,我们可以创建一个数据框。要从Excel文件的单个工作表读取数据,您可以简单地将Excel文件的名称以及工作表名称或索引传递给read_excel()函数,如下所示:
示例
# create a sample excel file with 2 columns and 5 rows and 3 sheets import pandas as pd df1 = pd.DataFrame({'Name': ['John', 'Smith', 'Alex', 'James', 'Peter'], 'Age': [25, 30, 27, 22, 32]}) df2 = pd.DataFrame({'Name': ['John', 'Smith', 'Alex', 'James', 'Peter'], 'Age': [25, 30, 27, 22, 32]}) df3 = pd.DataFrame({'Name': ['John', 'Smith', 'Alex', 'James', 'Peter'], 'Age': [25, 30, 27, 22, 32]}) with pd.ExcelWriter('sample.xlsx') as writer: df1.to_excel(writer, sheet_name='Sheet1', index=False) df2.to_excel(writer, sheet_name='Sheet2', index=False) df3.to_excel(writer, sheet_name='Sheet3', index=False) # import the excel file import pandas as pd df = pd.read_excel('sample.xlsx', sheet_name='Sheet1') print(df)
输出
其中filename是excel文件的路径,df是数据框的名称。
... Name Age 0 John 25 1 Smith 30 2 Alex 27 3 James 22 4 peter 32
如果您想从工作表中读取特定范围的行和列,可以使用可选参数'header'(指定用作列标题的行数)和'usecols'(指定要读取的列),如下所示:
df = pd.read_excel('filename.xlsx', sheet_name='Sheet1', header=0, usecols='A:C')
以上代码将读取Sheet1的前三列(A, B, C),第一行作为标题。
读取多个工作表
有时您可能需要从多个工作表读取数据。为此,您可以将工作表名称作为列表传递给read_excel()函数,如下所示:
示例
df1 = pd.read_excel('filename.xlsx', sheet_name=['Sheet1', 'Sheet2']) print (df1)
以上代码将从Sheet1和Sheet2读取数据。
输出
Name Age 0 John 25 1 Smith 30 2 Alex 27 3 James 22 4 peter 32 Name Age 0 John 25 1 Smith 30 2 Alex 27 3 James 22 4 peter 32
从多个Excel文件读取数据
要从多个Excel文件读取数据,可以使用glob模块中的glob()函数。glob函数搜索与指定模式匹配的所有文件,并返回文件名列表。使用以下代码导入glob模块:
import glob
导入glob模块后,使用以下代码从文件夹中的所有Excel文件读取数据:
path = r'folder_path/*.xlsx' files = glob.glob(path) dfs = [] for file in files: data = pd.read_excel(file, sheet_name='Sheet1') dfs.append(data) df = pd.concat(dfs, ignore_index=True)
以上代码将读取folder_path目录中所有扩展名为.xlsx的Excel文件的数据。
步骤3:数据清洗和处理
现在我们已经从Excel文件读取了数据,我们可以执行各种数据清洗和处理操作来准备用于分析的数据。一些常见的数据清洗操作包括删除重复项、处理缺失值、删除无关列等。
删除重复项
要从数据框中删除重复项,我们可以使用pandas提供的drop_duplicates()函数。
示例
使用以下代码从数据框中删除重复项:
import pandas as pd df = pd.DataFrame({'Name': ['John', 'Smith', 'Alex', 'James', 'Peter', 'John', 'Smith', 'Alex', 'James', 'Peter'], 'Age': [25, 30, 27, 22, 32, 25, 30, 27, 22, 32]}) print(df)
输出
Name Age 0 John 25 1 Smith 30 2 Alex 27 3 James 22 4 peter 32 5 John 25 6 Smith 30 7 Alex 27 8 James 22 9 peter 32
示例
df.drop_duplicates(inplace=True) print(df)
输出
Name Age 0 John 25 1 Smith 30 2 Alex 27 3 James 22 4 peter 32
以上代码将删除数据框中的所有重复行。
处理缺失值
要处理数据框中的缺失值,我们可以使用pandas提供的各种函数,例如isnull()、fillna()和dropna()。
isnull() - 此函数用于检查缺失值。使用以下代码检查缺失值:
df.isnull().sum()
以上代码将返回数据框中每列缺失值的总数。
dropna() - 此函数用于删除包含缺失值的行。使用以下代码删除至少包含一个缺失值的所有行:
df.dropna(inplace=True)
以上代码将从数据框中删除至少包含一个缺失值的所有行。
fillna() - 此函数用于使用指定值填充缺失值。使用以下代码将所有缺失值填充为0:
df.fillna(0, inplace=True)
以上代码将数据框中的所有缺失值填充为0。
删除无关列
要从数据框中删除无关列,我们可以使用pandas提供的drop()函数。使用以下代码删除名为'column1'的列:
df.drop('column1', axis=1, inplace=True)
以上代码将删除数据框中名为'column1'的列。
结论
本文档讨论了如何在Python中使用Excel文件创建数据框。我们涵盖了各种方面,例如从Excel文件读取数据、处理缺失值和删除重复项。这些知识可以应用于现实世界的场景,例如从各种来源导入数据进行分析。