在线运行和编辑此教程中的代码
运行代码安装 pandas
安装 pandas 非常简单;只需在终端使用 pip install 命令。
pip install pandas
或者,您也可以通过 conda 安装:
conda install pandas
安装完成后,建议检查已安装版本以确保一切正常:
import pandas as pd
print(pd.__version__) # Prints the pandas version
这可确认 pandas 安装无误,并让您核对与其他包的兼容性。
在 pandas 中导入数据
要开始使用 pandas,请如下导入该包。导入时,最常用的别名是 pd。
import pandas as pd
导入 CSV 文件
使用 read_csv() 并传入 CSV 文件路径来读取逗号分隔值文件(详见我们的read_csv() 导入数据教程)。
df = pd.read_csv("diabetes.csv")
上述读取操作会加载 diabetes.csv 并生成 pandas DataFrame 对象 df。在本教程中,您将看到如何操作此类 DataFrame 对象。
导入文本文件
读取文本文件与 CSV 类似。不同之处在于需要通过 sep 参数指定分隔符,如下所示。分隔符指用于在 DataFrame 中分隔列的符号。常见分隔符包括逗号(sep = ",")、空白(sep = "\s")、制表符(sep = "\t")和冒号(sep = ":")。其中 \s 表示单个空白字符。
df = pd.read_csv("diabetes.txt", sep="\s")
导入 Excel 文件(单工作表)
读取 Excel 文件(XLS 和 XLSX)可以使用 read_excel() 函数,并传入文件路径。
df = pd.read_excel('diabetes.xlsx')
您还可以指定其他参数,例如 header 用来指定哪一行作为表头。默认值为 0,即第一行作为表头或列名。您也可以在 names 参数中以列表形式指定列名。如果文件包含行索引,可使用 index_col(默认 None)参数。
注意:在 pandas 的 DataFrame 或 Series 中,索引是指向 DataFrame 中行或列位置的标识符。简言之,索引用于标记 DataFrame 的行或列,并允许您通过索引访问特定的行或列(稍后会看到)。DataFrame 的行索引可以是范围(例如 0 到 303)、时间序列(日期或时间戳)、唯一标识(例如 employee_ID,在 employees 表中)或其他类型。列索引通常为字符串(表示列名)。
导入 Excel 文件(多工作表)
读取包含多个工作表的 Excel 文件也类似。只需额外指定 sheet_name 参数,可传入工作表名称(字符串)或位置(整数)。注意 Python 使用从 0 开始的索引,首个工作表可通过 sheet_name = 0 访问。
# Extracting the second sheet since Python uses 0-indexing
df = pd.read_excel('diabetes_multi.xlsx', sheet_name=1)
导入 JSON 文件
类似 read_csv(),对于 JSON 文件可使用 read_json(),并将 JSON 文件名作为参数(更多细节可阅读这篇关于将 JSON 与 HTML 数据导入 pandas 的教程)。下面的代码从磁盘读取 JSON 文件并创建 DataFrame 对象 df。
df = pd.read_json("diabetes.json")
如果您想进一步了解使用 pandas 导入数据,请查看这份关于用 Python 导入各种文件类型的速查表。
从 SQL 数据库导入数据
要从关系型数据库加载数据,可结合数据库连接使用 pd.read_sql()。
import sqlite3
# Establish a connection to an SQLite database
conn = sqlite3.connect("my_database.db")
# Read data from a table
df = pd.read_sql("SELECT * FROM my_table", conn)
对于大型数据集,考虑使用 SQLAlchemy 优化查询。
从 API 导入数据(JSON 格式)
如果您的数据来自 Web API,pandas 可直接使用 pd.read_json() 读取:
df = pd.read_json("https://api.example.com/data.json")
如果 API 响应有分页或为嵌套 JSON 格式,您可能需要结合 pandas.io.json 中的 json_normalize() 做进一步处理。
在 pandas 中导出数据
正如 pandas 能从多种文件类型导入数据,它也支持导出至多种格式。通常,当您用 pandas 转换过数据并需要将其本地保存时会用到。下面展示如何将 pandas DataFrame 导出为多种格式。
将 DataFrame 导出为 CSV 文件
使用 .to_csv() 方法将 pandas DataFrame(此处为 df)保存为 CSV 文件。参数包括带路径的文件名以及 index —— 其中 index = True 表示写出 DataFrame 的索引。
df.to_csv("diabetes_out.csv", index=False)
将 DataFrame 导出为 JSON 文件
调用 .to_json() 方法即可将 DataFrame 对象导出为 JSON 文件。
df.to_json("diabetes_out.json")
注意:JSON 文件以键值对形式存储类似 DataFrame 的表格对象,因此您会在 JSON 文件中看到列名重复出现。
将 DataFrame 导出为文本文件
与写出 CSV 类似,您可以调用 .to_csv()。不同之处在于输出文件扩展名为 .txt,并且需通过 sep 参数指定分隔符。
df.to_csv('diabetes_out.txt', header=df.columns, index=None, sep=' ')
将 DataFrame 导出为 Excel 文件
从 DataFrame 对象调用 .to_excel() 可将其保存为 “.xls” 或 “.xlsx” 文件。
df.to_excel("diabetes_out.xlsx", index=False)
用 pandas 查看与理解 DataFrame
在将表格数据读取为 DataFrame 后,您需要先快速浏览数据。您可以查看数据集的一小部分样本,或通过汇总统计查看数据概况。
如何使用 .head() 和 .tail() 查看数据
分别使用 .head() 或 .tail() 方法查看 DataFrame 的前几行或后几行。您可以通过 n 参数指定行数(默认值为 5)。
df.head()

DataFrame 的前五行
df.tail(n = 10)

DataFrame 的后 10 行
使用 .describe() 理解数据
.describe() 方法会打印所有数值列的汇总统计信息,例如计数、均值、标准差、范围和四分位数。
df.describe()

使用 .describe() 获取汇总统计
它可让您快速了解数值数据的量纲、偏态与范围。
您还可以通过 percentiles 参数修改分位数。例如,这里我们查看 DataFrame df 数值列的 30%、50% 和 70% 分位数。
df.describe(percentiles=[0.3, 0.5, 0.7])

按特定分位数获取汇总统计
您还可以使用 include 参数在汇总输出中仅包含特定数据类型。例如,这里我们只汇总 integer 类型的列。
df.describe(include=[int])

仅汇总整数列的统计信息
类似地,您也可以使用 exclude 参数排除某些数据类型。
df.describe(exclude=[int])

仅汇总非整数列的统计信息
实践中,将结果使用 .T 转置后查看会更直观。
df.describe().T

通过 .T 转置汇总统计
关于描述 DataFrame 的更多方法,请查看以下速查表。
使用 .info() 理解数据
.info() 方法可快速查看 DataFrame 的数据类型、缺失值与数据大小。这里我们将 show_counts 设为 True,以显示每列非缺失值的总数;将 memory_usage 设为 True,以显示 DataFrame 元素的总内存使用量;当 verbose 设为 True 时,会打印 .info() 的完整摘要。
df.info(show_counts=True, memory_usage=True, verbose=True)
使用 .shape 理解数据规模
使用 DataFrame 的 .shape 属性可获得行数与列数。它返回一个元组(行,列),也可通过索引分别获取行数或列数。
df.shape # Get the number of rows and columns
df.shape[0] # Get the number of rows only
df.shape[1] # Get the number of columns only
(768,9)
768
9
获取所有列及列名
调用 DataFrame 对象的 .columns 属性会返回一个 Index 对象形式的列名。再次提醒,pandas 的索引是行或列的地址/标签。
df.columns

可使用 list() 函数将其转换为列表。
list(df.columns)

使用 .isnull() 检查缺失值
示例 DataFrame 默认没有缺失值。我们先引入一些以便演示。.copy() 方法会复制原始 DataFrame,以确保对副本的更改不会影响原始数据。使用 .loc(稍后讨论),您可以将 Pregnancies 列的第 2 到第 5 行设置为 NaN(表示缺失)。
df2 = df.copy()
df2.loc[2:5,'Pregnancies'] = None
df2.head(7)

可以看到,第 2 到第 5 行现在为 NaN
您可以使用 .isnull() 方法检查 DataFrame 中每个元素是否缺失。
df2.isnull().head(7)
通常了解缺失数据的数量更有用,因此可以将 .isnull() 与 .sum() 结合来统计每列的缺失值个数。
df2.isnull().sum()
Pregnancies 4
Glucose 0
BloodPressure 0
SkinThickness 0
Insulin 0
BMI 0
DiabetesPedigreeFunction 0
Age 0
Outcome 0
dtype: int64
您还可以再做一次求和来获得整个 DataFrame 的缺失值总数。
df2.isnull().sum().sum()
4
在 pandas 中排序、切片与提取数据
pandas 提供多种方式来对 DataFrame 进行排序、取子集、筛选和隔离数据。这里我们将介绍最常用的方法。
排序数据
按某一列对 DataFrame 排序:
df.sort_values(by="Age", ascending=False, inplace=True) # Sort by Age in descending order
可按多列排序:
df.sort_values(by=["Age", "Glucose"], ascending=[False, True], inplace=True)
重置索引
如果过滤或排序了 DataFrame,索引可能不再连续。使用 .reset_index() 修复:
df.reset_index(drop=True, inplace=True) # Resets index and removes old index column
使用条件筛选数据
基于条件提取数据:
df[df["BloodPressure"] > 100] # Selects rows where BloodPressure is greater than 100
使用 [ ] 隔离单列
您可以用方括号 [ ] 并传入列名,来隔离单个列。输出为 pandas 的 Series 对象。Series 是一维数组,包含任意类型数据(整数、浮点、字符串、布尔、Python 对象等)。DataFrame 由多列 Series 构成。
df['Outcome']

隔离单列
使用 [[ ]] 隔离两列或多列
您也可以在方括号中传入列名列表以获取多列。这里方括号有两层用法:外层方括号表示对 DataFrame 取子集,内层方括号用于创建列表。
df[['Pregnancies', 'Outcome']]

隔离两列
使用 [ ] 隔离单行
可以通过传入仅含一个 True 的布尔 Series 来获取单行。在下例中,返回 index = 1 的第二行。此处 .index 返回 DataFrame 的行标签,比较运算将其转换为布尔一维数组。
df[df.index==1]

隔离单行
使用 [ ] 隔离两行或多行
类似地,可用 .isin() 方法替代 == 运算符来返回多行。
df[df.index.isin(range(2,10))]

隔离特定行
使用 .loc[] 与 .iloc[] 获取行
您可以使用 .loc[] 与 .iloc[](“位置”和“整数位置”)按标签或位置/条件获取特定行。.loc[] 通过标签定位行、列或单元格;.iloc[] 通过数值位置定位。为理解两者差异,让我们先修改之前创建的 df2 的索引。
df2.index = range(1,769)
下面的示例返回 pandas Series 而非 DataFrame。.loc[] 中的 1 表示行索引(标签),而 .iloc[] 中的 1 表示行位置(第二行)。
df2.loc[1]
Pregnancies 6.000
Glucose 148.000
BloodPressure 72.000
SkinThickness 35.000
Insulin 0.000
BMI 33.600
DiabetesPedigreeFunction 0.627
Age 50.000
Outcome 1.000
Name: 1, dtype: float64
df2.iloc[1]
Pregnancies 1.000
Glucose 85.000
BloodPressure 66.000
SkinThickness 29.000
Insulin 0.000
BMI 26.600
DiabetesPedigreeFunction 0.351
Age 31.000
Outcome 0.000
Name: 2, dtype: float64
您还可以通过在方括号中提供范围来获取多行。
df2.loc[100:110]

使用 .loc[] 隔离行
df2.iloc[100:110]
![Isolating rows in pandas with .loc[]](https://media.datacamp.com/legacy/v1668597143/image28_07af2245c8.png?w=724)
使用 .iloc[] 隔离行
您也可以在 .loc[] 与 .iloc[] 中使用列表而非范围来取子集。
df2.loc[[100, 200, 300]]
![Isolating rows using a list in pandas with .loc[]](https://media.datacamp.com/legacy/v1668597142/image31_c5acf2a9bd.png?w=723)
在 .loc[] 中使用列表隔离行
df2.iloc[[100, 200, 300]]

在 .iloc[] 中使用列表隔离行
您也可以同时选择特定列与行。此处 .iloc[] 与 .loc[] 的不同在于它需要列的位置而非标签。
df2.loc[100:110, ['Pregnancies', 'Glucose', 'BloodPressure']]
![Isolating columns using a list in pandas with .loc[]](https://media.datacamp.com/legacy/v1668597142/image7_40bb6ca301.png?w=279)
使用 .loc[] 隔离列
df2.iloc[100:110, :3]
![Isolating columns using in pandas with .iloc[]](https://media.datacamp.com/legacy/v1668597143/image42_bf1e7b2f49.png?w=276)
使用 .iloc[] 隔离列
为更高效的工作流,您可以传入起始行索引作为范围。
df2.loc[760:, ['Pregnancies', 'Glucose', 'BloodPressure']]
![Isolating columns using in pandas with .loc[]](https://media.datacamp.com/legacy/v1668597142/image33_863cb34962.png?w=274)
使用 .loc[] 同时隔离列与行
df2.iloc[760:, :3]

使用 .iloc[] 同时隔离列与行
您可以使用赋值运算符 = 更新/修改某些值:
df2.loc[df['Age']==81, ['Age']] = 80
条件切片(满足特定条件)
pandas 允许您根据行/列值的条件来过滤数据。例如,下面的代码选择血压正好为 122 的行。这里我们仍使用方括号 [ ] 隔离行,但不是传入行索引或列名,而是传入一个条件:BloodPressure 列等于 122,记作 df.BloodPressure == 122。
df[df.BloodPressure == 122]

按条件隔离行
下面的示例获取所有 Outcome 为 1 的行。这里 df.Outcome 选取该列,df.Outcome == 1 返回一个布尔 Series 表示哪些 Outcome 等于 1,然后 [] 取 df 中布尔 Series 为 True 的子集。
df[df.Outcome == 1]

按条件隔离行
您可以使用 > 运算符进行比较。以下代码获取所有 BloodPressure 大于 100 的记录的 Pregnancies、Glucose 和 BloodPressure 列。
df.loc[df['BloodPressure'] > 100, ['Pregnancies', 'Glucose', 'BloodPressure']]
基于条件隔离行与列
使用 pandas 清洗数据
数据清洗是数据科学中最常见的任务之一。pandas 让您能为各种用途预处理数据,包括(但不限于)训练机器学习与深度学习模型。让我们使用之前含有 4 个缺失值的 DataFrame df2 来演示几个数据清洗用例。先回顾一下如何查看 DataFrame 中缺失值的数量。
df2.isnull().sum()
Pregnancies 4
Glucose 0
BloodPressure 0
SkinThickness 0
Insulin 0
BMI 0
DiabetesPedigreeFunction 0
Age 0
Outcome 0
dtype: int64
处理缺失数据方法一:删除缺失值
一种处理缺失数据的方法是将其删除。当数据量充足且丢失一小部分不会影响后续分析时,这尤其有用。您可以使用 .dropna() 方法,如下所示。这里我们将 .dropna() 的结果保存为 DataFrame df3。
df3 = df2.copy()
df3 = df3.dropna()
df3.shape
(764, 9) # this is 4 rows less than df2
axis 参数可指定删除含缺失值的行还是列。默认 axis 会删除包含 NaN 的行。使用 axis = 1 删除含有一个或多个 NaN 的列。另请注意我们使用了 inplace=True,这使您无需将 .dropna() 的输出保存到新的 DataFrame。
df3 = df2.copy()
df3.dropna(inplace=True, axis=1)
df3.head()

在 pandas 中删除缺失数据
您还可以通过将 how 参数设为 'all' 来同时删除包含缺失值的行和列。
df3 = df2.copy()
df3.dropna(inplace=True, how='all')
处理缺失数据方法二:替换缺失值
与其删除,依据场景将缺失值替换为汇总统计量或特定值可能更合适。例如,如果记录了一周每日气温的数据,其中有一天缺失,那么将该缺失值替换为该周的平均气温,往往比直接删除更有效。您可以使用如下代码用行或列的均值替换缺失数据。
df3 = df2.copy()
# Get the mean of Pregnancies
mean_value = df3['Pregnancies'].mean()
# Fill missing values using .fillna()
df3 = df3.fillna(mean_value)
处理重复数据
我们给原始数据添加一些重复项,来学习如何在 DataFrame 中去重。此处使用 .concat() 将 df2 自身按行拼接,从而为 df2 中的每一行添加一个完全重复的副本。
df3 = pd.concat([df2, df2])
df3.shape
(1536, 9)
您可以使用 .drop_duplicates() 方法移除 DataFrame 中所有重复行(默认)。
df3 = df3.drop_duplicates()
df3.shape
(768, 9)
重命名列
重命名列是常见的数据清洗任务。使用 .rename() 方法时,可通过 columns 参数指定需要重命名的列。下面的代码展示了旧列名与新列名的映射字典。
df3.rename(columns = {'DiabetesPedigreeFunction':'DPF'}, inplace = True)
df3.head()

在 pandas 中重命名列
您也可以直接将列名列表赋值给 DataFrame。
df3.columns = ['Glucose', 'BloodPressure', 'SkinThickness', 'Insulin', 'BMI', 'DPF', 'Age', 'Outcome', 'STF']
df3.head()

在 pandas 中重命名列
若想了解更多数据清洗内容,并获得更简明可控的清洗流程,请查看以下检查清单,它为您汇总了常见的数据清洗任务。
在 pandas 中进行数据分析
pandas 的核心价值在于其快速的数据分析功能。本节我们将重点介绍一组可在 pandas 中使用的分析技术。
汇总运算(均值、众数、中位数)
如前所示,您可以使用 .mean() 方法获取每列的均值。
df.mean()

打印各列均值
众数可用 .mode() 方法计算。
df.mode()

打印各列众数
同样,各列中位数可用 .median() 方法计算。
df.median()

打印各列中位数
基于现有列创建新列
pandas 支持像标量变量一样对两列或多列进行快速高效的计算。下面的代码将 Glucose 列的每个值与对应的 Insulin 列值相除,计算得到新列 Glucose_Insulin_Ratio。
df2['Glucose_Insulin_Ratio'] = df2['Glucose']/df2['Insulin']
df2.head()

从现有列创建新列
使用 .value_counts() 计数
您经常会处理分类型变量,并需要统计某列中每个类别的观测数量。可以使用 .value_counts() 方法计数。例如,这里我们统计 Outcome 为糖尿病(1)与非糖尿病(0)的观测数量。
df['Outcome'].value_counts()

在 pandas 中使用 .value_counts()
加入 normalize 参数可返回比例而非绝对计数。
df['Outcome'].value_counts(normalize=True)

在 pandas 中使用标准化的 .value_counts()
通过 sort 参数(默认 True)可关闭结果的自动排序。默认按计数降序排序。
df['Outcome'].value_counts(sort=False)

在 pandas 中使用带排序的 .value_counts()
您也可以将 .value_counts() 应用于 DataFrame 对象及其特定列,而不只是单列。例如,这里我们在 df 上结合 subset 参数(接受列名列表)使用 value_counts()。
df.value_counts(subset=['Pregnancies', 'Outcome'])

对列取子集后使用 .value_counts()
在 pandas 中使用 .groupby() 聚合数据
pandas 允许您按照特定列值分组后进行聚合。您可以将 .groupby() 与任意汇总方法组合使用。下面的代码展示了按 Outcome 分组后,每个数值列的均值。
df.groupby('Outcome').mean()

按单列聚合数据
.groupby() 也可通过传入列名列表按多列分组,如下所示。
df.groupby(['Pregnancies', 'Outcome']).mean()

按两列聚合数据
任何汇总方法均可与 .groupby() 搭配使用,包括 .min()、.max()、.mean()、.median()、.sum()、.mode() 等。
数据透视表
pandas 还可通过数据透视表计算汇总统计。这使得基于变量组合快速得出结论更为容易。下面的代码将行设为 Pregnancies 的唯一值,列为 Outcome 的唯一值,单元格为对应分组的 BMI 平均值。
例如,当 Pregnancies = 5 且 Outcome = 0 时,平均 BMI 为 31.1。
pd.pivot_table(df, values="BMI", index='Pregnancies',
columns=['Outcome'], aggfunc='mean')

通过数据透视实现聚合
在 pandas 中进行数据可视化
pandas 提供了对 Matplotlib 绘图函数的便捷封装,使可视化 DataFrame 更加容易。下面您将看到如何使用 pandas 完成常见的数据可视化。
折线图
pandas 可以通过折线图展示变量之间的关系。下面是 BMI 和 Glucose 相对于行索引的折线图。
df[['BMI', 'Glucose']].plot.line()

基础折线图
您可以通过 color 参数选择颜色。
df[['BMI', 'Glucose']].plot.line(figsize=(20, 10),
color={"BMI": "red", "Glucose": "blue"})

带自定义颜色的基础折线图
通过 subplots 参数,还可以将 df 的所有列绘制在不同的刻度与坐标轴上。
df.plot.line(subplots=True)
折线图的子图
柱状图
对于离散列,您可以对类别计数绘制柱状图以可视化其分布。下面可视化具有二元值的 Outcome 变量。
df['Outcome'].value_counts().plot.bar()
pandas 中的柱状图
箱线图
可以使用箱线图可视化连续变量的四分位分布。下面的代码展示了如何在 pandas 中创建箱线图。
df.boxplot(column=['BMI'], by='Outcome')

pandas 中的箱线图
进一步学习 pandas
以上教程仅是 pandas 能力的冰山一角。无论是分析、可视化、筛选还是聚合数据,pandas 都提供了极其丰富的功能,能加速您的任何数据工作流。此外,将 pandas 与其他数据科学包结合使用,您还可以创建交互式仪表盘、利用机器学习构建预测模型、自动化数据工作流等。查看以下资源,加速您的 pandas 学习之旅:
- [速查表] 海量 Python 与pandas 速查表,供您随时查阅
- [直播培训] 查看我们的免费 live code-along 课程,其中很多都会使用到 pandas
- [更多教程] 浏览我们关于 pandas 与 PyData 生态的更多教程,包括如何在 pandas 中实现移动平均以及使用 pandas 的 .apply() 方法
pandas 常见问题
What is pandas in Python?
pandas 是 Python 中功能强大的数据操作库。它提供了操作结构化数据所需的数据结构与函数,包括对数据框的处理与分析功能。由于能高效完成数据清洗、转换与分析,它已成为数据分析与数据科学领域不可或缺的工具。
Why should I learn pandas?
如果您在 Python 中处理数据,pandas 基本是必学工具。它简化了数据处理与分析流程,让您更专注于提炼洞见与创造价值。无论处理小数据集还是大规模数据,pandas 都能凭借速度、灵活性和友好的数据结构让工作更轻松。
How do I install pandas?
安装 pandas 需要您系统上已安装 Python 与 pip(Python 包管理器)。随后可运行命令:pip install pandas。如果您在如 Anaconda 这样的环境中使用 Jupyter notebook,pandas 通常已预装。
What are the basic data structures in pandas?
pandas 的两种基础数据结构是 Series 和 DataFrame。Series 本质上是一列,DataFrame 是由多个 Series 组成的多维表格。这些结构很灵活,能够容纳不同类型的数据(如整数、字符串、浮点数)。
Is pandas good for large data sets?
是的,pandas 非常适合处理大型数据集。它为高效数据分析而设计,包括对大数据集的支持。但请注意,可处理的数据规模在一定程度上取决于系统内存。如果数据巨大到无法完全载入内存,您可能需要使用其他工具或技术(如分块读取或使用 dask)。
How do I import data into pandas?
pandas 能从多种文件格式读取数据,如 CSV、Excel、SQL 数据库、JSON 等。可分别使用 pd.read_csv()、pd.read_excel()、pd.read_sql() 和 pd.read_json() 从对应类型导入数据。上述命令都会返回一个 DataFrame,您可用 pandas 对其进行操作。

我是一名 AI 策略与伦理专家,致力于在数据科学、产品与工程的交汇处构建可扩展的机器学习系统。曾入选全球“200 位顶尖商业与技术创新者”之一,我的使命是让机器学习走向大众,打破术语壁垒,让每个人都能参与这场变革。




pandas 可以说是 Python 中最重要的数据分析包。它每月下载量超过 1 亿次,是数据处理和探索性数据分析的事实标准。其对多种数据格式的读写能力,使其成为数据科学从业者的多面手工具。强大的数据操作函数也让它在数据聚合、分析和清洗方面既易上手又实用。
在我们的博文《如何学习 pandas》中,我们讨论了掌握该库的学习路径。本篇入门教程将覆盖所有基础概念,并演示 pandas 的不同功能。您也可以查看我们的课程pandas Foundations获取更多细节。
本文面向具备 Python 基础、但没有使用过 pandas 的初学者,帮助您快速上手。
什么是 pandas?
pandas 是 Python 中用于处理表格数据的数据操作包。也就是由行和列构成的数据,通常称为 DataFrame。直观地说,您可以把 DataFrame 想象成一张 Excel 表。
pandas 的功能包括数据转换(如排序行和取子集)、计算均值等汇总统计、重塑 DataFrame、以及连接多个 DataFrame。pandas 与其他知名的 Python 数据科学包(通常称为 PyData 生态)配合良好,包括:
pandas 用来做什么?
pandas 贯穿数据分析的各个环节。借助 pandas,您可以:
pandas 还包含用于时间序列分析和文本数据分析的功能。
pandas 包的主要优势
毋庸置疑,pandas 是一个功能强大的数据操作工具,具备多项优势:
如何安装 pandas?
在深入功能之前,让我们先安装 pandas。您也可以注册免费 DataCamp 账号并使用DataLab(一款预装了 pandas 和主流 Python 数据科学包的云端 IDE)来免去本步骤。