用Pandas为初学者导航数据格式
Pandas导航数据格式初学者
介绍
Pandas不仅仅是一个名字 – 它是“面板数据”的缩写。那么,究竟是什么意思呢?在经济学和统计学中使用Pandas的数据格式。它指的是保存跨多个时期针对不同实体或主题的观察的结构化数据集。
现如今,人们经常将数据存储在各种文件格式中,并必须将其转换为可访问的格式以进行加载。这是任何数据科学项目的第一步,也将是本文的主要讨论内容。
本文是数据科学博文马拉松的一部分。
Pandas数据科学的支柱
- 轻松处理数据:Pandas的一个突出特点是它们能够轻松处理复杂的数据任务。曾经复杂的代码现在通过Pandas的简洁函数变得更加简化。
- 完美的数据协调:Pandas与更大的数据科学画面完美地结合在一起,它与NumPy、Matplotlib、SciPy、Scikit Learn和其他高级库高效地配合使用。
- 数据收集的适应性:Pandas具有从各种来源收集数据的灵活性。无论是CSV文件、Excel表格、JSON还是SQL数据库,Pandas都可以处理。这种适应性简化了数据导入,使我们免去了格式转换的烦恼。
简而言之,Pandas的成功来自于它友好的结构、处理数据的能力、与其他工具的集成以及处理各种数据来源的能力。它赋予数据爱好者解锁数据集中隐藏的潜力,重塑数据科学的格局。
Pandas如何保持数据整洁有序?
想象一下Pandas就像你的数据组织者。Pandas使用两个令人难以置信的结构来处理数据:“Series”和“DataFrame”。想象它们就像数据存储的超级英雄!
- Series:将Series视为数据可以存在的直线路径。它就像一行信息,可以保存任何东西,从数字到文字。每个数据都有一个特殊的标签称为索引。想象它就像一个名牌 – 它能帮助你轻松找到数据。当处理单独的一列数据时,Series非常方便。你可以进行计算和分析等操作。
- DataFrame:DataFrame就像一个迷你电子表格或者一个花哨的表格。它有行和列,就像你在Excel中看到的那样。每一列都是一个Series。所以,你可以有一个“Numbers”列,一个“Names”列等等。DataFrame是一个全功能的工具。它擅长处理各种数据 – 数字、文字,你名字。此外,你还可以做一些很酷的事情,比如查找、组织数据和改变数据的排列。记住,DataFrame中的每一列都是一个Series!
在介绍了理论基础之后,现在是时候卷起袖子,深入实际编码了。
安装和导入Pandas
'''
您可以在命令提示符或终端中输入以下内容将pandas安装到您的系统中
'''
pip install pandas
#要将pandas安装到您的conda环境中,请使用以下命令
conda install pandas
# jupyter笔记本用户可以使用以下命令
!pip install pandas
现在就像numpy被缩写为np和seaborn被缩写为sns一样,pandas通常被缩写为pd。您可以自由选择任何其他缩写方式,这不会以任何方式影响代码的执行。然而,‘pd’是常用的缩写,使用它可以提高代码的可读性。在本文中,我们将使用标准缩写’pd’并使用它来导入pandas。
# 导入pandas库
import pandas as pd
以下代码展示了如何使用pandas创建Series。
ages = pd.Series([22, 35, 58], name="年龄")
print(ages)
pandas的Series没有列标签,因为它只是DataFrame的单列。但是Series有行标签。
现在让我们通过一个例子来学习数据框的用法。我想要存储泰坦尼克号上的乘客数据。对于乘客的数量,我知道名字(字符)、年龄(整数)和性别(男/女)的数据。
df = pd.DataFrame(
{
"姓名": [
"Braund, Mr. Owen Harris",
"Allen, Mr. William Henry",
"Bonnell, Miss. Elizabeth",
],
"年龄": [22, 35, 58],
"性别": ["男", "男", "女"],
}
)
print(df)
这将返回一个字典作为DataFrame对象。还要注意在调用函数时如何拼写DataFrame。您可以在这里找到所有这些例子。
现在您知道如何加载Python并开始使用它了。但是请稍等,处理实际项目时,您的数据很可能会有更多的行和列。手动将它们作为字典输入将是一项马拉松任务。这就是将数据导入pandas的魔力所在。猜猜看?这正好引导我们进入今天的讨论重点!
CSV文件
逗号分隔值(CSV)文件在数据科学中具有重要意义,因为它们广泛用于存储表格数据。由于其简单性和兼容性,它们是数据交换的通用选择,适用于各种平台和应用程序。Python的pandas库提供了一种优雅的解决方案,用于读取CSV文件,使数据科学家能够轻松加载、操作和分析数据。这个简化的过程节省时间,确保数据完整性,并为探索和提取见解提供了一个结构化的框架,使pandas成为数据科学家必备的工具之一。当您开始掌握数据科学时,CSV文件将成为您的得力伙伴。
要读取CSV文件,我们使用了read_csv() 函数,它接受CSV文件的路径,并将数据读入pandas的DataFrame对象中。
# 导入pandas库
import pandas as pd
# 从名为'sampledata.csv'的CSV文件中读取数据
# 结果DataFrame将存储在变量'df_csv'中
df_csv = pd.read_csv('sampledata.csv')
表格
表格是数据上下文中的一种结构化排列方式,其中信息按行和列组织。每一行代表一个不同的记录或条目,而每一列对应一个特定的属性或特征。
pandas中的read_table()函数便于将文本文件中的表格数据转换为pandas DataFrame。调用时,它以读取模式打开指定的文件,并按顺序处理每一行作为数据的一行。默认情况下,函数假定制表符分隔不同的列。但是,您可以使用sep参数自定义分隔符以适应不同的格式。该函数读取并处理数据,构建一个DataFrame,将行转换为DataFrame的行,并将每行的值转换为相应的DataFrame列。一旦函数处理完整个文件,它将返回包含导入的表格数据的DataFrame。这简化了将基于文本的数据转换为结构化DataFrame格式的过程。
# 导入pandas库
import pandas as pd
# 使用制表符作为分隔符从'data.txt'中读取表格数据
df = pd.read_table('data.txt', sep='\t')
# 打印结果DataFrame
print(df)
Excel文件
Excel是最常见的数据存储格式之一。使用read_excel()函数可以快速将其加载到pandas数据框中。它平滑地加载各种Excel文件格式,从xls到xlsx,甚至是xlsb、odf、ods和odt扩展名。无论是来自本地驱动器还是URL,此函数允许您读取一个工作表或多个工作表。
# 导入pandas库
import pandas as pd
# 从名为'sample.xlsx'的Excel文件中读取数据,从'Sheet1'中读取
# 结果DataFrame将存储在变量'df_excel'中
df_excel = pd.read_excel('sample.xlsx', sheet_name='Sheet1')
sheet_name参数帮助您选择您希望在Excel文件中工作的工作表。
sheet_name: str, int, list, or None, default 0
字符串用于指定工作表名称。整数用于指定从零开始的工作表位置(图表工作表不计入工作表位置)。字符串/整数列表用于请求多个工作表。指定None以获取所有工作表。
可用选项:
默认为0:将第一个工作表加载为DataFrame
1:将第二个工作表加载为DataFrame
“Sheet1”:加载名称为“Sheet1”的工作表
[0, 1, “Sheet5”]:将第一个、第二个和名称为“Sheet5”的工作表加载为DataFrame字典
None:所有工作表
JSON
JSON(JavaScript对象表示法)广泛用作存储和交换数据的文件格式。它们具有设计使其可读性良好,适用于人类和机器的特点,因此适用于各种应用程序。由于其简单性和灵活性,JSON经常用于Web API、配置文件和数据存储。在数据科学中,JSON对于处理结构化数据并将其集成到各种分析工具中(包括pandas)非常有价值。可以使用read_json()函数将其读入pandas的数据框中。
# 导入pandas库
import pandas as pd
# 从名为'data.json'的JSON文件中读取数据
# 结果DataFrame将存储在变量'df_json'中
df_json = pd.read_json('data.json')
SQL
将pandas与SQL数据库连接可以打开无数可能性。它使您可以无缝地桥接数据库中存储的结构化数据与pandas强大的数据处理能力。通过建立这种连接,您可以利用SQL查询提取所需数据,然后轻松地将其转换为pandas的DataFrame。这种协同作用使您能够使用pandas友好的语法和丰富的数据处理函数分析、可视化和操作SQL数据。将pandas连接到SQL数据库桥接了数据库查询和探索性数据分析之间的差距,从而实现更高效、更有洞察力的数据驱动决策。
不同级别的企业级数据库有不同的连接路径。在本文中,您将使用Python友好的sqlite3数据库,并可以使用read_sql()函数读取数据。
# 导入所需库
import sqlite3
import pandas as pd
# 建立与名为'database.db'的SQLite数据库的连接
conn = sqlite3.connect('database.db')
# 定义一个SQL查询,选择名为'table_name'的表中的所有数据
query = "SELECT * FROM table_name"
# 使用SQL查询从连接中读取数据,创建一个名为'df_sql'的DataFrame
df_sql = pd.read_sql(query, conn)
HTML
将HTML表格读入pandas可以从网页中提取结构化数据的大门。这就像是从一个信息源中获取数据的源泉。通常,网站以表格形式呈现数据,非常适合进行分析。通过利用pandas的read_html()函数,您可以轻松地爬取和转换这些表格为DataFrame,避免了手动提取的麻烦。这对于无需先将数据保存为文件就能快速导入数据非常方便。然而,确保复制的数据以表格格式正确结构化对于pandas的准确解释非常重要。
# 导入pandas库
import pandas as pd
# 定义包含HTML表格的URL
url = 'https://example.com/table.html'
# 从提供的URL读取HTML表格
# 结果表格列表存储在变量'tables'中
tables = pd.read_html(url)
# 从列表中提取第一个表格,并将其存储在DataFrame 'df_html'中
df_html = tables[0]
剪贴板
pandas的read_clipboard()函数提供了一种方便的方式,可以直接从计算机的剪贴板导入数据到DataFrame中。要使用它,您需要从网页或电子表格等源将所需的表格数据复制到剪贴板中。然后,在Python环境中(如Jupyter Notebook或交互式shell)中调用read_clipboard()函数。Pandas将复制的数据解释为表格,并将其转换为DataFrame,您可以随后处理和分析。这个函数在您想要快速导入数据而不首先保存为文件时非常方便。然而,确保复制的数据在表格格式中正确结构化对于pandas的准确解释非常重要。
# 导入pandas库
import pandas as pd
# 从剪贴板中读取表格数据,并创建一个名为'df_clipboard'的DataFrame
df_clipboard = pd.read_clipboard()
HDF
使用pandas读取HDF5文件可以增强对大型和复杂数据集的数据管理能力。HDF5的高效存储、层次结构和对多样数据类型的支持使其成为一个强大的选择。它的压缩能力可以优化存储空间,这对于大量数据非常重要。通过将HDF5与pandas集成,您可以利用后者强大的数据操作工具,实现对复杂大型数据集的无缝分析和探索。这种协同作用使得数据科学家和研究人员能够高效处理大规模数据,为复杂分析和深入发现打开了新的可能性。在这里使用read_hdf()函数。
# 导入pandas库
import pandas as pd
# 从名为'data.h5'的HDF5文件中读取数据
df_hdf = pd.read_hdf('data.h5', key='mydata')
# 打印结果DataFrame
print(df_hdf)
Parquet
使用pandas读取PARQUET文件提供了一种多功能的数据存储和分析解决方案。PARQUET的列式存储格式优化了数据压缩,最小化了存储空间并提高了数据访问速度。借助pandas读取PARQUET文件的能力,您可以高效处理大型数据集,这使其非常适合大数据场景。该格式与各种数据类型的兼容性确保了数据完整性,并实现了与pandas数据操作工具的无缝集成。通过利用read_parquet()函数来利用PARQUET的优势,您可以高效处理大规模数据,加速分析工作流程并发现庞大数据集中的洞察力。
# 导入pandas库
import pandas as pd
# 从名为'data.parquet'的PARQUET文件中读取数据
df_parquet = pd.read_parquet('data.parquet')
# 打印结果DataFrame
print(df_parquet)
Feather
使用pandas读取Feather文件提供了一种高性能的数据交换和分析途径。Feather的二进制存储格式优化了读取和写入速度,非常适用于不同语言之间的数据交换。通过利用read_feather()函数读取Feather文件,您可以快速加载和分析大型数据集,非常适合数据密集型任务。该格式的简洁性和对速度的关注使其能够与pandas的数据操作函数无缝集成。通过这种组合,您可以快速处理大量数据集,加速数据分析工作流程并提取高效的洞察力。
# 导入pandas库
import pandas as pd
# 从名为'data.feather'的Feather文件中读取数据
df_feather = pd.read_feather('data.feather')
# 打印结果DataFrame
print(df_feather)
结论
掌握将各种文件格式加载到pandas中对于数据分析师和科学家来说非常重要。它可以轻松地从CSV、Excel、JSON和SQL等来源集成数据,扩大了提取洞察力的能力。这种数据收集的多样性扩展了全面分析的范围,为明智有效的数据驱动决策提供了重要的技能。这就是您在本文中学到的内容。
本文关于使用pandas处理数据格式的要点包括:
- 介绍pandas以及解释为什么它在数据科学行业中如此受欢迎。
- pandas的数据结构是”Series”和”DataFrames”。
- 如何将数据从CSV、Excel、JSON等文件格式加载到pandas的DataFrame中。
还有其他文件格式,如定宽文件(fwf)和SAS文件,它们也可以在pandas中有效地读取。我强烈建议您阅读相关文档以获得更好的理解。
常见问题
本文中显示的媒体不是Analytics Vidhya所拥有的,而是根据作者的决定使用的。