在数据科学和数据分析领域,Python因其易学性、强大的在线社区支持以及丰富的数据相关库而广受欢迎。Pandas库是Python中进行数据分析的核心库之一,本文将介绍Pandas中13个基础且重要的函数和方法,这些是每位数据分析师和数据科学家必须掌握的。
read_csv()函数是Pandas中读取数据的关键方法之一,它允许将逗号分隔值(csv)文件读入Pandas DataFrame。只需指定文件路径即可。该函数同样可以读取以其他分隔符(如|或制表符)分隔的文件。以下是如何使用read_csv()函数的Python代码示例:
# 导入Pandas库
import pandas as pd
# 读取数据集
data_1 = pd.read_csv(r'blog_dataset.csv')
to_csv()函数与read_csv()函数相反,它将Pandas DataFrame或Series中的数据写入csv文件。read_csv()和to_csv()是Pandas中最常用的函数之一,因为它们在从数据源读取数据时非常重要。
head(n)函数用于返回数据集的前n行。默认情况下,df.head()将返回DataFrame的前5行。如果想要更多或更少的行数,可以指定n为一个整数。
data_1.head(6)
输出显示了数据集的前6行(索引0到5),符合预期。tail()函数与head()类似,返回数据集的底部n行。head()和tail()帮助快速查看数据集,并检查数据是否已正确读入DataFrame。
describe()函数用于生成Pandas DataFrame或Series中数据的描述性统计信息。它总结了数据集的中心趋势和离散程度。describe()帮助快速了解数据集。
data_1.describe()
describe()列出了数据集中所有数值列的不同描述性统计度量。通过将include属性设置为‘all’,可以获得包括分类信息在内的所有列的描述。
memory_usage()函数返回一个Pandas Series,包含Pandas DataFrame中每列的内存使用量(以字节为单位)。通过将deep属性设置为True,可以了解每列实际占用的空间。
data_1.memory_usage(deep=True)
每列的内存使用量以Pandas Series的形式输出。了解DataFrame的内存使用量很重要,以便可以处理Python中的MemoryError等错误。
astype()函数用于将Python对象转换为特定数据类型。如果数据没有存储在正确的格式(数据类型)中,这个函数非常有用。例如,如果浮点数被Python错误地解释为字符串,可以使用astype()将它们转换回浮点数。或者,如果想将对象数据类型转换为类别,可以使用astype()。
data_1['Gender'] = data_1.Gender.astype('category')
可以通过查看数据集中所有列的数据类型来验证数据类型的更改,使用dtypes属性。有关astype()的更多文档,请点击。
loc[:]函数帮助根据需要访问数据集中的一组行和列,或者数据集的一个切片。例如,如果只想访问数据集的最后两行和前三列,可以使用loc[:]来访问它们。还可以基于标签而不是行和列号来访问行和列。
data_1.loc[0:4, ['Name', 'Age', 'State']]
上述代码将返回前5条客户记录的“Name”、“Age”和“State”列。请注意,Python中的索引从0开始,loc[:]包含提到的两个值。因此,0:4意味着包括索引0到4。
to_datetime()函数将Python对象转换为datetime格式。它可以接受整数、浮点数、列表、Pandas Series或Pandas DataFrame作为参数。当数据集包含时间序列值或日期时,to_datetime()非常有用。
data_1['DOB'] = pd.to_datetime(data_1['DOB'])
现在DOB列已更改为Pandasdatetime格式。现在可以在该列上应用所有datetime函数。有关to_datetime()的更多信息,请点击。
value_counts()函数返回一个PandasSeries,包含Series中唯一值的计数。考虑一个包含公司5000名客户信息的数据集。value_counts()将帮助识别Series中每个唯一值的出现次数。它可以应用于包含州、就业行业或客户年龄等数据的列。
data_1['State'].value_counts()
输出显示了数据集中每个州的出现次数,符合预期。value_counts()还可以用来绘制分类和序数数据的条形图。有关value_counts()的文档,请点击。
drop_duplicates()函数返回一个Pandas DataFrame,其中重复的行已被删除。即使在重复项中,也有一个选项可以保留重复项的第一个(记录)或最后一个。还可以指定inplace和ignore_index属性。
data_1.drop_duplicates(inplace=True)
inplace=True确保更改应用于原始数据集。可以通过查看原始数据集的形状和修改后的数据集(删除重复项后)来验证更改。将注意到行数已从9减少到8(因为已删除1个重复项)。
groupby()函数用于根据1个或多个列对Pandas DataFrame进行分组,并对其执行一些数学运算。groupby()可以用来简化数据汇总。
data_1.groupby(by='State').Salary.mean()
上述代码将按“State”列对数据集进行分组,并返回跨州的平均年龄。有关groupby()的更多信息,请点击。
merge()函数用于合并两个Pandas DataFrame对象或一个DataFrame和一个Series对象在公共列(字段)上。如果熟悉SQL中的JOIN概念,merge函数类似于JOIN。它返回合并后的DataFrame。
data_1.merge(data_2, on='Name', how='left')
要了解更多关于on(包括left_on和right_on)、how和suffixes等属性的信息,请参阅。
sort_values()函数用于按Pandas DataFrame(或Pandas Series)中的值对列进行排序,可以是升序或降序。通过将inplace属性设置为True,可以直接在原始DataFrame中进行更改。
data_1.sort_values(by='Name', inplace=True)
现在记录的顺序已经改变。记录现在按名字的字母顺序列出。sort_values()还有许多其他可以指定的属性。可以在阅读有关它的信息。
data_1['City temp'].fillna(38.5, inplace=True)