Pandas 数据分析入门

Pandas是Python中一个强大的数据分析库,它从数据操作到数据分析的多个阶段都有应用。Pandas 得到了NumPy和Matplotlib这两个重要的Python包的支持。本文将探索Pandas包及其在收入数据集上的各种函数。这些函数的使用将有效帮助进行数据探索

数据集的表示

Pandas中,每个数据集都以表格格式表示,称为DataFrame。每个列中的值都有相同的数据类型,可以是文本或数字,但不同的列可以包含不同的数据类型。以下是将在本文中讨论的一些Pandas函数。

当第一次接收到一个新的数据集时,希望快速探索它并了解其内容。Pandas提供了几种方法来实现这一点。首先是head函数,它返回DataFrame的前几行。head函数用于查看数据集的前几行。

income_data.head()

输出结果展示了数据集中的前几行,包括姓名、年龄、性别、职业、收入和支出等列。

info函数突出显示数据集中的总行数、列名、它们的数据类型以及任何缺失值。它用于打印DataFrame的摘要。

income_data.info()

info函数显示了每列的非空值计数、数据类型等信息,这对于了解数据的性质非常重要。

describe方法计算数值列的一些摘要统计数据,如均值和中位数。“count”是非空值的数量。describe对于快速概览数值变量非常有用。

income_data.describe()

输出结果提供了年龄、收入和支出的统计摘要,包括均值、标准差、最小值、四分位数和最大值。

DataFrame的shape属性包含一个元组,其中包含行数和列数。由于这是一个属性而不是方法,不需要加括号。

income_data.shape

输出结果为(7,6),表示数据集有7行和6列。

DataFrame还有两个组成部分,即列和行的标签。columns属性包含列名,index属性包含行号或行名。

income_data.columns income_data.index

输出结果展示了列名和行索引。

如果想将Python对象转换为特定的数据类型,可以使用astype()函数。当数据没有以正确的格式存储时,这个函数非常有用。

income_data['Income'] = income_data['Income'].astype('int')

执行后,收入列现在是整数列。

可以通过对行进行排序来改变行的顺序,使得最有趣的数据位于DataFrame的顶部。可以使用sort_values方法,传入想要排序的列名。

income_data.sort_values(['Age', 'Income'], ascending=[False, True]).head()

输出结果展示了按年龄和收入排序后的数据集的前几行。

value_counts()用于查看不同列中唯一值的计数。

income_data['Income'].value_counts()

输出结果展示了不同收入值的出现次数。

drop_duplicates()从数据集中移除重复的行。当数据集包含大量重复值时,这个函数非常重要。

income_data.drop_duplicates(inplace=True)

inplace=True意味着更改将应用于原始数据集。

有时可能只想选择一列。可以使用DataFrame的名称,后跟方括号和列名来实现。要选择多列,需要两对方括号。

idata_subsetcol = income_data[['Name', 'Age', 'Occupation']]

输出结果展示了所选列的子集。

在DataFrame中添加列可以通过多种方式实现,包括变异DataFrame、转换DataFrame和特征工程。

income_data['Savings'] = income_data['Income'] - income_data['Expenses']

执行后,创建了一个新的“储蓄”列,计算公式为(收入-支出)。

如果想将数据集中的任何列转换为其索引,可以通过set_index实现。

income_data_ind = income_data.set_index('Name')

执行后,将“姓名”列设置为索引列。

如果想移除索引,可以使用reset_index。

income_data_ind = income_data.reset_index()

执行后,将索引添加为一列。

使用loc和iloc,可以在DataFrame上执行几乎所有的数据选择操作。loc基于标签,意味着必须根据它们的行和列标签来指定行和列。iloc基于整数索引,所以必须通过它们的整数索引来指定行和列。

idata_loc = income_data.loc[(income_data.Age >= 32) & (income_data.Gender == 'Male')]

输出结果展示了满足条件的行。

Pandas的groupBy()函数用于根据某些预定义的标准将数据分割成组。

income_agg = income_data.groupby("Age")["Income"].mean() inc_pivot = income_data.pivot_table('Age', index='Gender', columns='Occupation')
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485