Pandas 文本数据

PythonPythonBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将探索如何使用 Python 的 Pandas 库来处理文本数据。你将学习如何使用各种内置的 Pandas 方法将字符串字符转换为小写、提取字符串的部分内容、替换字符串值等等。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作的验证无法自动化。

如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。

导入必要的库和数据

让我们首先导入 Pandas 库并加载本教程将使用的数据。

## 导入必要的库
import pandas as pd

## 加载数据
titanic = pd.read_csv("data/titanic.csv")

将字符串字符转换为小写

接下来,我们将把“Name”列中的所有字符转换为小写。我们将使用str.lower()方法来实现这一点。

## 将“Name”列中的所有字符转换为小写
titanic["Name"] = titanic["Name"].str.lower()

从全名中提取姓氏

现在,让我们创建一个新列“Surname”,其中包含乘客的姓氏。我们将通过提取“Name”列中逗号之前的部分来实现这一点。

## 在逗号处拆分“Name”列并提取第一部分
titanic["Surname"] = titanic["Name"].str.split(",").str.get(0)

提取特定乘客数据

接下来,让我们提取泰坦尼克号上伯爵夫人的乘客数据。我们将使用str.contains()方法来查找“Name”列中包含“Countess”一词的行。

## 查找“Name”列中包含“Countess”的行
countesses = titanic[titanic["Name"].str.contains("Countess")]

找出最长的名字

让我们找出泰坦尼克号上名字最长的乘客。我们将使用str.len()方法来获取每个名字的长度,并使用idxmax()方法来找到最长名字的索引。

## 获取每个名字的长度
name_lengths = titanic["Name"].str.len()

## 找到最长名字的索引
longest_name_index = name_lengths.idxmax()

## 获取最长的名字
longest_name = titanic.loc[longest_name_index, "Name"]

替换列中的值

最后,让我们替换“Sex”列中的值:将“male”替换为“M”,“female”替换为“F”。我们将为此使用replace()方法。

## 在“Sex”列中,将“male”替换为“M”,“female”替换为“F”
titanic["Sex_short"] = titanic["Sex"].replace({"male": "M", "female": "F"})

总结

在这个实验中,我们已经了解了如何使用Python的Pandas库来处理文本数据。我们学习了如何将字符串字符转换为小写、提取字符串的部分内容、基于字符串内容查找特定行、找到最长的字符串以及替换字符串值。这些知识在数据预处理中非常有用,而数据预处理是数据分析和机器学习中的关键步骤。