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

yizhihongxing

获取 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日

相关文章

  • python基础篇之pandas常用基本函数汇总

    Python基础篇之Pandas常用基本函数汇总 1. 背景介绍 Pandas是一种开放源代码的数据分析和处理工具,它被广泛应用于数据科学领域。在Pandas中,有许多常用的基本函数,本文将总结这些函数并提供示例演示。 2. 常用基本函数 以下是Pandas中常用的基本函数: 2.1 读取数据 read_csv():读取csv文件数据并转换成DataFram…

    python 2023年5月14日
    00
  • 如何使用IQR的Pandas过滤器

    当我们需要处理大型数据集时,Pandas是一个非常流行和强大的工具。其中,过滤是处理数据集的一个常见操作,而IQR(四分位间距)的概念可以帮助我们在数据的不同部分之间进行筛选和分析。 以下是如何使用IQR的Pandas过滤器的步骤: 第一步:导入pandas和numpy库 import pandas as pd import numpy as np 第二步:…

    python-answer 2023年3月27日
    00
  • 对pandas处理json数据的方法详解

    下面给出“对pandas处理json数据的方法详解”的完整攻略。 对pandas处理json数据的方法详解 1. 什么是JSON? JSON(JavaScript Object Notation),是一种轻量级的数据交换格式。它基于JavaScript语言的一个子集,可以用于表示复杂的数据结构,包括对象、数组、字符串、数字、布尔值等。 在Python中,JS…

    python 2023年5月14日
    00
  • Pandas之Dropna滤除缺失数据的实现方法

    一、Dropna的基本用法 Pandas中的dropna函数是用来滤除缺失数据的。具体如何实现呢?让我们首先来看一下dropna函数的基本用法。 函数定义: DataFrame.dropna( axis=0, # 行或列 how=’any’, # 如果遇到缺失数据对应的行或列是any或all的话将会被滤除 thresh=None, # 非空数据点数的阈值,取…

    python 2023年5月14日
    00
  • 使用 Python 获取 Linux 系统信息的代码

    获取Linux系统信息是一个很常用的操作,因为我们需要了解我们使用的操作系统的状态和配置。下面是使用Python获取Linux系统信息的完整攻略: 开始 首先,我们需要在Linux系统上安装Python。如果你的系统上已经安装了Python,则可以直接跳过这一步。如果你的系统没有安装Python,请使用以下命令安装: sudo apt-get update …

    python 2023年5月14日
    00
  • Python 从一个等长列表的dict中创建一个Pandas数据框架

    首先,我们需要导入 Pandas 库,可以使用以下代码: import pandas as pd 之后,我们需要创建一个等长列表的字典,以便将其转换为 Pandas 数据框架。例如,我们可以创建以下字典: dict = {‘name’: [‘Alice’, ‘Bob’, ‘Charlie’, ‘David’], ‘age’: [25, 30, 35, 40]…

    python-answer 2023年3月27日
    00
  • Python pandas中apply函数简介以及用法详解

    Python pandas中apply函数简介以及用法详解 apply()函数是pandas库中常用的一个函数,它可以对DataFrame的某一列或某一行进行操作。本篇文章将详细讲解apply()函数的作用、语法及使用方法,并给出两个示例说明。 apply()函数的作用 apply()函数的主要作用是对DataFrame的某一列或某一行进行计算。它的返回值可…

    python 2023年5月14日
    00
  • Pandas 执行类似SQL操作的4种方法

    Pandas是数据处理中不可或缺的工具之一,除了数据的读写、清洗、转换等基本操作,Pandas还支持一些类似SQL的操作,而这些操作对于熟悉SQL的用户来说,极大地方便了数据的操作和分析。 Pandas提供的SQL类操作主要包括以下几种方法: merge: 将两个DataFrame按照指定的列进行合并(类似于SQL中的join操作)。 groupby: 对D…

    Pandas 2023年3月7日
    00
合作推广
合作推广
分享本页
返回顶部