跳至主要内容

Python pandas 教程:零基础终极指南

准备好开启您的 pandas 之旅了吗?这是一份循序渐进的入门指南。
· 15分钟 阅读

使用 AI 探索

pandas 可以说是 Python 中最重要的数据分析包。它每月下载量超过 1 亿次,是数据处理和探索性数据分析的事实标准。其对多种数据格式的读写能力,使其成为数据科学从业者的多面手工具。强大的数据操作函数也让它在数据聚合、分析和清洗方面既易上手又实用。

在我们的博文《如何学习 pandas》中,我们讨论了掌握该库的学习路径。本篇入门教程将覆盖所有基础概念,并演示 pandas 的不同功能。您也可以查看我们的课程pandas Foundations获取更多细节。

本文面向具备 Python 基础、但没有使用过 pandas 的初学者,帮助您快速上手。

什么是 pandas?

pandas 是 Python 中用于处理表格数据的数据操作包。也就是由行和列构成的数据,通常称为 DataFrame。直观地说,您可以把 DataFrame 想象成一张 Excel 表。

pandas 的功能包括数据转换(如排序行和取子集)、计算均值等汇总统计、重塑 DataFrame、以及连接多个 DataFrame。pandas 与其他知名的 Python 数据科学包(通常称为 PyData 生态)配合良好,包括:

pandas 用来做什么?

pandas 贯穿数据分析的各个环节。借助 pandas,您可以:

  • 从数据库、电子表格、CSV 文件等导入数据集。
  • 清洗数据集,例如处理缺失值。
  • 通过重塑结构,将数据整理为适合分析的格式。
  • 通过计算列均值、相关性等汇总统计来聚合数据。
  • 可视化数据集并挖掘洞见。

pandas 还包含用于时间序列分析和文本数据分析的功能。

pandas 包的主要优势

毋庸置疑,pandas 是一个功能强大的数据操作工具,具备多项优势:

  • 为 Python 而生:Python 是当今最流行的机器学习与数据科学语言。
  • 同等操作更简洁: pandas 代码更为简练,往往用更少的行数即可得到所需结果。
  • 直观的数据视图: pandas 提供极其直观的数据表示方式,有助于理解与分析数据。
  • 特性丰富: 支持从探索性数据分析、缺失值处理、统计计算,到一元/二元数据可视化等广泛操作。
  • 处理大数据: pandas 能轻松处理大型数据集。根据机器配置,可高效处理数百万行、数百列规模的数据。

如何安装 pandas?

在深入功能之前,让我们先安装 pandas。您也可以注册免费 DataCamp 账号并使用DataLab(一款预装了 pandas 和主流 Python 数据科学包的云端 IDE)来免去本步骤。

在线运行和编辑此教程中的代码

运行代码

安装 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()

First five rows of the DataFrame (df) using .head()

DataFrame 的前五行

df.tail(n = 10)

last 10 rows of a Dataframe with df.head()

DataFrame 的后 10 行

使用 .describe() 理解数据

.describe() 方法会打印所有数值列的汇总统计信息,例如计数、均值、标准差、范围和四分位数。

df.describe()

Get summary statistics with .describe()

使用 .describe() 获取汇总统计

它可让您快速了解数值数据的量纲、偏态与范围。

您还可以通过 percentiles 参数修改分位数。例如,这里我们查看 DataFrame df 数值列的 30%、50% 和 70% 分位数。

df.describe(percentiles=[0.3, 0.5, 0.7])

Get summary statistics with specific percentiles  pandas

按特定分位数获取汇总统计

您还可以使用 include 参数在汇总输出中仅包含特定数据类型。例如,这里我们只汇总 integer 类型的列。

df.describe(include=[int])

summary statistics of integer columns only pandas

仅汇总整数列的统计信息

类似地,您也可以使用 exclude 参数排除某些数据类型。

df.describe(exclude=[int])

get summary statistics of non-integer columns pandas

仅汇总非整数列的统计信息


实践中,将结果使用 .T 转置后查看会更直观。

df.describe().T

Transpose summary statistics pandas

通过 .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)

image26.png

使用 .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

Output of columns

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

list(df.columns)

column names as a list pandas

使用 .isnull() 检查缺失值

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

df2 = df.copy()
df2.loc[2:5,'Pregnancies'] = None
df2.head(7)

Rows 2 to 5 are missing pandas

可以看到,第 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']

Isolating one column in pandas

隔离单列

使用 [[ ]] 隔离两列或多列

您也可以在方括号中传入列名列表以获取多列。这里方括号有两层用法:外层方括号表示对 DataFrame 取子集,内层方括号用于创建列表。

df[['Pregnancies', 'Outcome']]

image15.png

隔离两列

使用 [ ] 隔离单行

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

df[df.index==1]

Isolating one row in pandas

隔离单行

使用 [ ] 隔离两行或多行

类似地,可用 .isin() 方法替代 == 运算符来返回多行。

df[df.index.isin(range(2,10))]

Isolating specific rows in pandas

隔离特定行

使用 .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]

Isolating rows with loc

使用 .loc[] 隔离行

df2.iloc[100:110]

Isolating rows in pandas with .loc[]

使用 .iloc[] 隔离行

您也可以在 .loc[] 与 .iloc[] 中使用列表而非范围来取子集。

df2.loc[[100, 200, 300]]

Isolating rows using a list in pandas with .loc[]

在 .loc[] 中使用列表隔离行

df2.iloc[[100, 200, 300]]

image25.png

在 .iloc[] 中使用列表隔离行

您也可以同时选择特定列与行。此处 .iloc[] 与 .loc[] 的不同在于它需要列的位置而非标签。

df2.loc[100:110, ['Pregnancies', 'Glucose', 'BloodPressure']]

Isolating columns using a list in pandas with .loc[]

使用 .loc[] 隔离列

df2.iloc[100:110, :3]

Isolating columns using in pandas with .iloc[]

使用 .iloc[] 隔离列

为更高效的工作流,您可以传入起始行索引作为范围。

df2.loc[760:, ['Pregnancies', 'Glucose', 'BloodPressure']]

Isolating columns using in pandas with .loc[]

使用 .loc[] 同时隔离列与行

df2.iloc[760:, :3]

image4.png
使用 .iloc[] 同时隔离列与行

您可以使用赋值运算符 = 更新/修改某些值:

df2.loc[df['Age']==81, ['Age']] = 80

条件切片(满足特定条件)

pandas 允许您根据行/列值的条件来过滤数据。例如,下面的代码选择血压正好为 122 的行。这里我们仍使用方括号 [ ] 隔离行,但不是传入行索引或列名,而是传入一个条件:BloodPressure 列等于 122,记作 df.BloodPressure == 122。

df[df.BloodPressure == 122]

Isolating rows based on a condition in pandas

按条件隔离行

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

df[df.Outcome == 1]

Isolating rows based on a condition in pandas

按条件隔离行

您可以使用 > 运算符进行比较。以下代码获取所有 BloodPressure 大于 100 的记录的 Pregnancies、Glucose 和 BloodPressure 列。

df.loc[df['BloodPressure'] > 100, ['Pregnancies', 'Glucose', 'BloodPressure']]

Isolating rows and columns based on a condition in pandas

基于条件隔离行与列

使用 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()

Dropping missing data pandas

在 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()

Renaming columns in pandas

在 pandas 中重命名列

您也可以直接将列名列表赋值给 DataFrame。

df3.columns = ['Glucose', 'BloodPressure', 'SkinThickness', 'Insulin', 'BMI', 'DPF', 'Age', 'Outcome', 'STF']
df3.head()

Renaming columns in pandas

在 pandas 中重命名列

若想了解更多数据清洗内容,并获得更简明可控的清洗流程,请查看以下检查清单,它为您汇总了常见的数据清洗任务。

在 pandas 中进行数据分析

pandas 的核心价值在于其快速的数据分析功能。本节我们将重点介绍一组可在 pandas 中使用的分析技术。

汇总运算(均值、众数、中位数)

如前所示,您可以使用 .mean() 方法获取每列的均值。

df.mean()

Printing the mean of columns in pandas

打印各列均值

众数可用 .mode() 方法计算。

df.mode()

image22.png

打印各列众数

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

df.median()

Printing the median of columns in pandas
打印各列中位数

基于现有列创建新列

pandas 支持像标量变量一样对两列或多列进行快速高效的计算。下面的代码将 Glucose 列的每个值与对应的 Insulin 列值相除,计算得到新列 Glucose_Insulin_Ratio。

df2['Glucose_Insulin_Ratio'] = df2['Glucose']/df2['Insulin']
df2.head()

Create a new column from existing columns in pandas

从现有列创建新列

使用 .value_counts() 计数

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

df['Outcome'].value_counts()

Using .value_counts() in pandas

在 pandas 中使用 .value_counts()

加入 normalize 参数可返回比例而非绝对计数。

df['Outcome'].value_counts(normalize=True)

Using .value_counts() in pandas with normalization

在 pandas 中使用标准化的 .value_counts()


通过 sort 参数(默认 True)可关闭结果的自动排序。默认按计数降序排序。

df['Outcome'].value_counts(sort=False)

Using .value_counts() in pandas with normalization

在 pandas 中使用带排序的 .value_counts()

您也可以将 .value_counts() 应用于 DataFrame 对象及其特定列,而不只是单列。例如,这里我们在 df 上结合 subset 参数(接受列名列表)使用 value_counts()。

df.value_counts(subset=['Pregnancies', 'Outcome'])

Using .value_counts() in pandas while subsetting columns

对列取子集后使用 .value_counts()

在 pandas 中使用 .groupby() 聚合数据

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

df.groupby('Outcome').mean()

Aggregating data by one column in pandas

按单列聚合数据

.groupby() 也可通过传入列名列表按多列分组,如下所示。

df.groupby(['Pregnancies', 'Outcome']).mean()

Aggregating data by two columns in pandas

按两列聚合数据

任何汇总方法均可与 .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')

Aggregating data by pivoting with pandas

通过数据透视实现聚合

在 pandas 中进行数据可视化

pandas 提供了对 Matplotlib 绘图函数的便捷封装,使可视化 DataFrame 更加容易。下面您将看到如何使用 pandas 完成常见的数据可视化。

折线图

pandas 可以通过折线图展示变量之间的关系。下面是 BMI 和 Glucose 相对于行索引的折线图。

df[['BMI', 'Glucose']].plot.line()

Basic lineplot with pandas

基础折线图

您可以通过 color 参数选择颜色。

df[['BMI', 'Glucose']].plot.line(figsize=(20, 10), 
                                 color={"BMI": "red", "Glucose": "blue"})

Basic line plot with pandas, with custom colors

带自定义颜色的基础折线图

通过 subplots 参数,还可以将 df 的所有列绘制在不同的刻度与坐标轴上。

df.plot.line(subplots=True)

Subplots for line plots with pandas

折线图的子图

柱状图

对于离散列,您可以对类别计数绘制柱状图以可视化其分布。下面可视化具有二元值的 Outcome 变量。

df['Outcome'].value_counts().plot.bar()

Barplots in pandas

pandas 中的柱状图

箱线图

可以使用箱线图可视化连续变量的四分位分布。下面的代码展示了如何在 pandas 中创建箱线图。

df.boxplot(column=['BMI'], by='Outcome')

Boxplots in pandas
pandas 中的箱线图

进一步学习 pandas

以上教程仅是 pandas 能力的冰山一角。无论是分析、可视化、筛选还是聚合数据,pandas 都提供了极其丰富的功能,能加速您的任何数据工作流。此外,将 pandas 与其他数据科学包结合使用,您还可以创建交互式仪表盘、利用机器学习构建预测模型、自动化数据工作流等。查看以下资源,加速您的 pandas 学习之旅:

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 对其进行操作。

Vidhi Chugh

作者

Vidhi Chugh

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

主题