创建使用Excel文件的Dataframe
什么是Dataframe?
Dataframe是一个二维对象,用于以表格格式存储数据,其中数据按行和列排列。可以使用各种方法创建Dataframe,其中一种最常见的方法是从Excel文件导入数据。在本文档中,我们将重点介绍如何逐步使用Python从Excel文件创建Dataframe。
为什么Dataframe对于数据分析很重要?
Dataframe对于数据分析至关重要,原因如下:
- 易于阅读和操作 - Dataframe是一种二维表格状数据结构,可轻松组织和操作数据。它们旨在处理复杂的数据操作,并且可以处理具有缺失值或不同数据类型的数据。
-
高效的数据处理 - Dataframe可用于高效处理大型数据集。它们旨在支持向量化操作,这些操作可以一次对整个数据数组执行计算,而不是逐行或逐列迭代。
-
与其他库的集成 - Dataframe在Python库中广泛使用,用于数据分析和科学计算,如Pandas、NumPy、Matplotlib和Scikit-learn。可以轻松地将它们与这些库集成以执行各种任务,例如数据清理、可视化和机器学习。
-
数据探索和可视化 - Dataframe为探索和可视化数据提供了强大的工具。它们允许轻松过滤、排序和分组数据,并可用于创建各种可视化,包括直方图、散点图和热力图。
总之,Dataframe是数据分析的重要工具,可以极大地简化处理大型和复杂数据集的过程。
先决条件
在我们开始之前,需要在您的系统上安装一些内容:
推荐的设置列表如下:
- pip install pandas、excel
-
预计用户将可以访问任何独立的IDE,例如VS-Code、PyCharm、Atom或Sublime Text。
-
甚至可以使用在线的Python编译器,例如Kaggle.com、Google Cloud平台或其他任何可以使用的平台。
-
Python的更新版本。在撰写本文时,我使用的是3.10.9版本。
-
了解Jupyter笔记本的使用。
-
理解和应用虚拟环境将是有益的,但不是必需的。
-
还应该具备良好的统计和数学基础。
步骤一:导入库
在开始之前,我们需要在Python中导入必要的库。我们将使用Pandas,一个开源数据处理库来处理Excel文件。使用以下代码导入Pandas:
import pandas as pd
步骤二:从Excel文件中读取数据
要使用Excel文件创建Dataframe,我们首先需要从Excel文件中读取数据。我们可以利用Pandas提供的read_excel()
函数来完成这一操作。该函数可以读取.xls和.xlsx格式的数据。
基本创建和读取
要创建一个带有一个工作表的Excel文件,我们可以创建一个Dataframe。要从Excel文件的单个工作表中读取数据,只需将Excel文件的文件名和工作表名称或索引传递到read_excel()
函数即可,如下所示:
示例
#创建一个有两列、5行和3个工作表的示例Excel文件
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)
#导入Excel文件
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)
上述代码将从文件夹路径中包含.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)
输出
名字 年龄
0 约翰 25
1 史密斯 30
2 亚历克斯 27
3 詹姆斯 22
4 彼得 32
5 约翰 25
6 史密斯 30
7 亚历克斯 27
8 詹姆斯 22
9 彼得 32
例子
df.drop_duplicates(inplace=True)
print(df)
输出
名字 年龄
0 约翰 25
1 史密斯 30
2 亚历克斯 27
3 詹姆斯 22
4 彼得 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文件的数据,处理缺失值和删除重复项等各个方面。这些知识可以应用于从各种来源导入数据进行分析等实际场景中。