在Pandas-Python中获取该列的子串

获取 DataFrame 中某一列的子串,在 Pandas 中可以通过 .str 属性来完成。这个属性能够对字符串类型的列进行向量化操作,例如 split、contains、replace 等。下面我们来详细说明如何在 Pandas-Python 中获取某一列的子串。

以以下示例数据集为例:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily', 'Frank'],
    'age': [25, 30, 35, 20, 27, 22],
    'city': ['New York', 'Paris', 'London', 'Tokyo', 'Sydney', 'New York']
})

假设这个 DataFrame 中有一列叫做 name,我们想获取它的子串,可以按以下步骤操作:

1. 使用 str 属性

首先,我们需要将要操作的列 name 提取出来,并通过 str 属性来进行操作:

name_series = df['name']
name_series.str

输出:

0    Alice
1      Bob
2  Charlie
3    David
4    Emily
5    Frank
Name: name, dtype: object
<pandas.core.strings.accessor.StringMethods at 0x7fdaaa65c290>

这里我们可以看到,对 name_series 调用 str 属性得到的是一个 StringMethods 类型的对象,我这里取名为 name_str 来方便后面的调用。

2. 子串截取

获取子串截取的方式有两种,一种是使用 slice 函数,另一种是直接使用切片(slice):

使用 slice 函数

slice(start, stop, step) 表示从 start 索引处开始到 stop 索引处结束,以 step 步长提取。值得注意的是,startstop 都可以代入负数,表示从后往前截取。下面我们以从索引 1 开始截取两个字符为例:

name_str.slice(1, 3, 1)

输出:

0    li
1     ob
2    har
3    avi
4    mil
5    ran
Name: name, dtype: object

直接使用切片

直接使用切片时,和普通的列表、数组切片的方法类似:

name_str.str[1:3]

输出:

0    li
1     ob
2    har
3    avi
4    mil
5    ran
Name: name, dtype: object

3. 获取子串的位置

有时候我们需要获取子串在原始字符串中的位置,可以使用 index 函数。其中的 sub 参数表示要查找的子串,startend 都是可选参数,代表查找的起始位置和结束位置。

例如,我们要获取以字母 l 开头的子串在 name 列中的位置,可以这样写:

name_str.index('l')

输出:

0    3
1    2
2    2
3    1
4    1
5    3
Name: name, dtype: int64

如果要获取以 l 开头 且以 e 结尾的子串,可以这样写:

name_str.index('l', start=2, end=4)

输出:

2    2
Name: name, dtype: int64

4. 应用

将上面的子串提取操作添加到 DataFrame 中:

df['name_sub'] = name_str.slice(1, 3, 1)

在 DataFrame 中新增一列 name_sub,表示提取的 name 列中的子串。

最终,我们得到了如下的 DataFrame:

    name  age      city name_sub
0  Alice   25  New York      li
1    Bob   30     Paris      ob
2    Charlie   35    London     har
3  David   20     Tokyo      avi
4  Emily   27    Sydney      mil
5  Frank   22  New York     ran

最后,总结一下在 Pandas-Python 中获取数据子串的过程。首先使用 str 属性提取操作的列,然后使用 slice 函数或者切片操作获取子串,如果需要获取子串在原始字符串中的位置,则使用 index 函数。最后将操作结果保存到 DataFrame 中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Pandas-Python中获取该列的子串 - Python技术站

(0)
上一篇 2023年3月27日
下一篇 2023年3月27日

相关文章

  • 如何在Groupby pandas之后重置索引

    在pandas中,groupby操作常常用来对数据进行分类处理。在进行groupby操作之后,通常会将index重置为默认值,或者使用aggregate或transform等函数将其保存为原来的值。如果您需要在groupby之后重置索引,您可以按照以下步骤进行操作: 步骤一:使用groupby函数对数据进行分类 首先,需要使用groupby函数对数据进行分类…

    python-answer 2023年3月27日
    00
  • 如何在 Julia 中安装 Pandas 包

    在 Julia 中安装 Pandas 包需要执行以下步骤: 打开 Julia 终端,进入 Pkg REPL。 可以通过在终端中输入 ] 进入 Pkg REPL。 安装 PyCall 包。 PyCall 包是用于在 Julia 中调用 Python 包的接口。在 Pkg REPL 界面输入以下命令进行安装: add PyCall 在 Julia 中运行 Pyt…

    python-answer 2023年3月27日
    00
  • 在Pandas数据框架中,将列的第一个字母大写

    在Pandas数据框架中,将列的第一个字母大写,可以通过以下步骤实现: 导入 Pandas 模块: pythonimport pandas as pd 创建包含数据的数据框 DataFrame: “`pythondata = {‘name’: [‘tom’, ‘jack’, ‘steve’, ‘ricky’], ‘age’: [28, 34, 29, 42…

    python-answer 2023年3月27日
    00
  • python使用ctypes调用第三方库时出现undefined symbol错误详解

    下面是“python使用ctypes调用第三方库时出现undefined symbol错误详解”的完整攻略。 什么是undefined symbol错误 在使用python调用第三方库时,如果出现了undefined symbol的错误,通常意味着python无法找到所需的共享库文件(.so)。这种错误通常出现在以下情况: 调用的第三方库没有正确安装或者没有…

    python 2023年5月14日
    00
  • 在Pandas中使用查询方法进行复杂条件的选择

    在使用Pandas进行数据分析中,经常需要对数据进行筛选和选择操作。Pandas提供了比较灵活的查询方法,可以实现复杂条件的筛选和选择。本文将详细讲解在Pandas中如何使用查询方法进行复杂条件的选择。 DataFrame的查询方法 Pandas提供了两种查询方法,分别是query()和eval()方法。query()方法通常用于过滤数据,支持比较、逻辑和二…

    python-answer 2023年3月27日
    00
  • Pandas 获取其他系列中不存在的系列元素

    要获取一个 Pandas Series 中不存在于另一个 Series 中的元素,可以使用 Pandas 提供的 isin() 和 ~(取非)操作符。 具体步骤如下: 首先,创建两个 Series,用于演示: “`python import pandas as pd s1 = pd.Series([1, 2, 3, 4, 5]) s2 = pd.Serie…

    python-answer 2023年3月27日
    00
  • 在Pandas中把一系列的列表转换为一个系列

    在Pandas中,将一系列的列表转换为一个系列主要可以通过Series类的构造函数实现。Series类是Pandas中最常用的数据结构之一,它有三个主要的构造函数:Series(data, index, dtype),其中参数data表示要创建的Series数据,可以是一个列表、字典或NumPy数组等;参数index为Series数据的索引,即Series的…

    python-answer 2023年3月27日
    00
  • 检查一个给定的列是否存在于Pandas数据框架中

    检查一个给定的列是否存在于Pandas数据框架中通常是在数据分析和处理的过程中需要进行的操作之一。下面为您详细介绍如何检查是否存在该列,并提供示例。 1. 列是否在数据框架中的判断方法 Pandas提供了 isin() 方法,可以快速地检查一个(或多个)列是否在数据框架中。具体方法如下: ‘列名’ in df.columns 其中,’列名’ 表示所要检查的列…

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部