在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日

相关文章

  • 对pandas replace函数的使用方法小结

    对pandas库中的replace()函数进行总结。 replace()函数概述 replace()函数是一种非常方便的文本替换函数,可以替换DataFrame、Series、Index等对象中的某一个值。 其语法如下: DataFrame.replace(to_replace=None, value=None, inplace=False, limit=N…

    python 2023年5月14日
    00
  • 如何计算Pandas Groupby对象中的唯一值

    对于 Pandas 的 Groupby 对象,可以使用 nunique() 函数来计算唯一值。 下面是详细操作步骤: 使用 Pandas 读取数据。 示例:读取 CSV 文件数据。 import pandas as pd data = pd.read_csv(‘data.csv’) 使用 Groupby 函数对数据进行分组。 示例:按照列 ‘name’ 对数…

    python-answer 2023年3月27日
    00
  • 使用NumPy函数创建Pandas系列

    下面我将为您介绍使用NumPy函数创建Pandas系列(Series)的详细攻略,包括步骤和示例。 步骤 导入pandas和numpy模块 在使用NumPy函数创建Pandas系列之前,需要导入pandas和numpy模块。您可以使用以下代码导入这两个模块: import pandas as pd import numpy as np 使用np.array(…

    python-answer 2023年3月27日
    00
  • 使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例

    使用 PyMySQL 查询数据库并把结果保存为列表的步骤如下: 安装 PyMySQL 库 使用 pip 命令安装 PyMySQL 库: pip install PyMySQL 连接数据库 使用 pymysql.connect() 方法连接 MySQL 数据库: import pymysql # 打开数据库连接 db = pymysql.connect(hos…

    python 2023年6月13日
    00
  • 使用Pandas模块串联CSV文件

    使用Pandas模块可以非常方便地读取、处理、分析CSV文件,同时也支持串联多个CSV文件。下面是使用Pandas模块串联CSV文件的完整攻略: 1. 导入Pandas模块 首先要导入Pandas模块,可以使用以下代码: import pandas as pd 2. 读取CSV文件 使用Pandas模块读取CSV文件非常简单,可以使用pd.read_csv(…

    python-answer 2023年3月27日
    00
  • Pandas自定义选项option设置

    Pandas是一个强大的数据处理库,它提供了很多有用的选项和设置,可以让数据分析变得更加容易和高效。除了Pandas提供的默认设置外,Pandas还支持自定义选项(option),可以根据自己的需要来调整Pandas的行为。本文将详细讲解Pandas自定义选项option设置的完整攻略。 什么是Pandas选项(option) 在Pandas中,选项指的是一…

    python 2023年5月14日
    00
  • python数据分析之文件读取详解

    Python数据分析之文件读取详解 在Python的数据分析过程中,读取文件是一个非常重要的步骤。文件读取可以帮助我们将数据从外部导入Python环境中,进行后续的数据分析、可视化等操作。本文将详细讲解Python下常用的文件读取方法。 1. 读取文本文件 Python下读取文本文件的方法有很多,常用的有: 1.1 使用open函数 open函数是Pytho…

    python 2023年5月14日
    00
  • 替换Pandas数据框架中的字符串中的字符

    要替换 Pandas 数据框架中字符串中的字符,可以使用 str.replace() 方法。下面是完整攻略及示例: 步骤 1:准备数据 首先,我们需要准备一些待处理的数据。这里我们使用一个包含两列的数据框架,其中一列包含了部分数据。 import pandas as pd data = { ‘A’: [‘foo’, ‘bar’, ‘baz’, ‘qux’, …

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