赞
踩
Pandas 是一个开源项目,由 Wes McKinney 在 2008 年发起,用于解决数据分析工作中的实际需求。它建立在 NumPy 库之上,为 Python 提供了丰富的数据结构和数据分析工具。Pandas 的名字来源于“Panel Data”和“Python Data Analysis”的缩写,其设计目的是为金融和时间序列分析提供支持,但它的应用范围远不止这些。
Pandas 的主要特点包括:
pip install pandas
或者使用 conda 命令(如果你使用 Anaconda 或 Miniconda):
conda install pandas
安装完成后,可以通过以下方式导入 Pandas 库:
import pandas as pd
这里使用了 pd
作为 Pandas 的缩写,这是一种常见的约定。接下来,就可以使用 Pandas 提供的各种功能进行数据分析工作了。
Pandas 主要有两种数据结构:Series 和 DataFrame。
import pandas as pd
# 创建一个 Series 对象
s = pd.Series(data, index=index)
其中,data
可以是列表、数组、字典等,index
是一个可选的索引标签列表,用于标识每个数据点。
例如:
s = pd.Series([1, 2, 3, 4, 5])
这将创建一个默认索引为 0 到 4 的 Series 对象。
2. DataFrame
DataFrame 是一个二维的表格型数据结构,它包含有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame 有行索引和列索引,可以被看作是一个 Series 的容器。
创建一个 DataFrame 对象的基本语法如下:
import pandas as pd
# 创建一个 DataFrame 对象
df = pd.DataFrame(data, index=index, columns=columns)
其中,data
可以是字典、列表、数组、另一个 DataFrame 等,index
是行索引,columns
是列索引。
例如:
data = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data)
这将创建一个两列的 DataFrame 对象,行索引默认为 0 到 1。
DataFrame 的列可以是不同的数据类型,并且可以进行各种操作,如选择、删除、添加列等。
这两种数据结构是 Pandas 库的核心,几乎所有的操作都是围绕这两种数据结构展开的。理解和掌握这两种数据结构是使用 Pandas 进行数据分析的基础。
Pandas 提供了一系列基本操作,这些操作对于数据处理和分析至关重要。以下是一些常用的基本操作:
pd.Series()
创建 Series。pd.DataFrame()
创建 DataFrame。df.head(n)
:查看 DataFrame 的前 n 行。df.tail(n)
:查看 DataFrame 的后 n 行。df.info()
:查看 DataFrame 的基本信息。df.describe()
:查看 DataFrame 的统计摘要。df.loc[行标签]
或 df.loc[行标签, 列名]
。df.iloc[整数索引]
或 df.iloc[整数索引, 整数列索引]
。df[条件表达式]
。df[df['列名'] > 值]
。df.sort_values(by='列名')
按照某一列的值进行排序。df['新列名'] = 值或列表
。df.drop('列名', axis=1)
。df.loc[新行标签] = 值
。df.drop('行标签')
。df.groupby('列名')
对数据进行分组。groupby
对象的 agg()
方法进行聚合操作。pd.concat()
沿着轴进行数据的合并。pd.merge()
进行数据库风格的合并操作。df.isnull()
、df.dropna()
、df.fillna()
。df.duplicated()
、df.drop_duplicates()
。df.apply()
对数据进行逐元素操作。df.applymap()
对 DataFrame 中的每个元素应用一个函数。df.pipe()
将多个操作串联起来。Pandas 的高级应用涉及更复杂的操作,这些操作对于处理大数据集和执行高级数据分析任务非常有用。以下是一些 Pandas 的高级应用:
groupby
操作允许你将数据分组,然后对每个组应用聚合函数(如 sum
、mean
、max
等)或自定义函数。df.groupby('列名').agg({'列名': ['sum', 'mean']})
可以对分组数据应用多个聚合函数。df['列名'].rolling(window=3).mean()
可以计算移动平均。df.set_index(['列名1', '列名2'])
可以将列转换为多重索引。df.astype()
将数据类型转换为更高效的类型。df.eval()
和 df.query()
来优化表达式求值和查询操作。df.pivot_table()
创建透视表,这是一种汇总大型数据集的有效方法。df.str
访问器对 Series 中的字符串进行操作,如查找、替换、分割等。pd.to_datetime()
可以将字符串转换为日期时间对象。df.resample('D').mean()
可以对时间序列数据进行重采样。df.isna()
和 df.notna()
检测缺失值。df.fillna()
、df.dropna()
和 df.interpolate()
处理缺失值。pd.pivot_table()
可以创建数据透视表,这是一种多维度数据汇总和分析的工具。df.applymap()
或 df.apply()
结合 lambda 函数进行复杂的字符串操作。pd.options.mode.chained_assignment
来控制链式赋值的警告。pd.Categorical()
创建分类数据类型,这有助于节省内存和提高性能。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。