详解pandas.str.extract()(提取字符串)函数使用方法

pandas.str.extract()是pandas库中的一个函数,用于从每个字符串中提取匹配给定正则表达式的第一个匹配子串。

使用方法:

pandas.str.extract(pat, flags=0, expand=True)

参数说明

  • pat:正则表达式的模式字符串
  • flags:re模块的匹配标志,如re.IGNORECASE、re.DOTALL等,默认为0,即没有标志
  • expand:是否将每个匹配的字符串拆分成新的列,默认为True

返回值

一个包含匹配子串的新Series或DataFrame。

实例1

假设我们想从以下网址中提取国家代码。

url = 'https://zh.wikipedia.org/wiki/ISO_3166-1'

使用正则表达式“(?<=)\s(([A-Z]{2}))$”,并将结果保存在名为“code”的新列中。

import pandas as pd

tables = pd.read_html(url)
df = tables[0]
df['code'] = df['名称(英文)'].str.extract('(?<=</a>)\s\(([A-Z]{2})\)$')
print(df)

输出:

                 英文短名称 二位代码 三位代码  ...     中文名称 ISO 3166 上標為独立主权 code
0          Afghanistan   AF  AFG  ...      阿富汗                是  NaN
1        Åland Islands   AX  ALA  ...       奥兰                否  NaN
2              Albania   AL  ALB  ...    阿尔巴尼亚                是  NaN
3              Algeria   DZ  DZA  ...    阿尔及利亚                是  NaN
4       American Samoa   AS  ASM  ...    美属萨摩亚                否  NaN
..                 ...  ...  ...  ...      ...              ...  ...
244  Wallis and Futuna   WF  WLF  ...  瓦利斯和富图纳                否  NaN
245     Western Sahara   EH  ESH  ...     西撒哈拉                否  NaN
246              Yemen   YE  YEM  ...       葉門                是  NaN
247             Zambia   ZM  ZMB  ...      尚比亞                是  NaN
248           Zimbabwe   ZW  ZWE  ...      辛巴威                是  NaN

[249 rows x 8 columns]

实例2

我们有一些电子邮件地址。 例如,

    emails = pd.Series(['abc@demo.com', 'info@example.com', 'support@pandas.com'])

现在我们想从中提取用户名和域名,使用正则表达式并将结果保存在新Series 中。

user_name = emails.str.extract(r'(\w+)@', expand=False)
domain_name = emails.str.extract(r'@(\w+.\w+)', expand=False)
print(user_name)
print(domain_name)

输出:

0        abc
1       info
2    support
dtype: object
0       demo.com
1    example.com
2     pandas.com
dtype: object

总结

使用pandas.str.extract(),我们可以快速从字符串中提取匹配给定正则表达式的第一个匹配子串。 该函数对于对文本数据的处理非常有用,例如从数据集中提取日期和时间信息,或从大量电子邮件地址中提取用户名和域名。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解pandas.str.extract()(提取字符串)函数使用方法 - Python技术站

(3)
上一篇 2023年3月22日
下一篇 2023年3月22日

相关文章

  • 详解pandas.DataFrame.unstack()(将序列展开为数据框)函数使用方法

    pandas.DataFrame.unstack()是一种数据结构转换函数,可以将具有多层索引的pandas DataFrame对象转换为单层DataFrame对象。它的作用是将DataFrame中的某些列作为列的索引,同时将行索引的某些级别旋转为新的列。 另外,unstack()函数还支持将多个索引级别转换为列,以及在转换时选择要使用的元素。 unstac…

    Pandas函数大全 2023年3月22日
    00
  • 详解pandas.str.upper()(转换字符串为大写)函数使用方法

    pandas.str.upper()函数可以将Series或DataFrame中的字符串全部转换为大写字母,即将每个字符串中的所有小写字母转换成大写字母。 语法:pandas.Series.str.upper() 返回值:Series或DataFrame 使用方法及示例: 将单个Series中的字符串转换为大写字母 import pandas as pd d…

    Pandas函数大全 2023年3月22日
    00
  • 详解pandas.DataFrame.groupby()(按列分组)函数使用方法

    pandas.DataFrame.groupby()是pandas中用于分组聚合数据的方法。具体来说,它可以按照某些列的值将数据分组,并对每个分组进行聚合操作,如求和、平均、计数等。 使用方法: pandas.DataFrame.groupby()的基本语法为: df.groupby(by=None, axis=0, level=None, as_index…

    Pandas函数大全 2023年3月22日
    00
  • 详解pandas.drop_duplicates()(删除重复值)函数使用方法

    pandas.drop_duplicates()的作用 pandas.drop_duplicates()是pandas库中的一个函数,主要用于去除数据集中的重复行。这个函数可以从任何一个DataFrame或Series对象中删除具有重复值的行,并返回一个新的DataFrame或Series,其中不包含任何重复的值。 pandas.drop_duplicate…

    Pandas函数大全 2023年3月22日
    00
  • 详解pandas.DataFrame.fillna()(填充缺失值)函数使用方法

    作用及使用方法 pandas.DataFrame.fillna()函数的作用是将数据帧(DataFrame)中的缺失值(NaN值)用指定的值或方法进行填充。具体使用方法如下: DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=Non…

    Pandas函数大全 2023年3月22日
    00
  • 详解pandas.dropna()(删除缺失值)函数使用方法

    Pandas是一种非常流行的Python数据处理库,其中的dropna()是一个常用的功能,它可以删除包含缺失数据的行或列。这个函数的详细作用和使用方法,可以通过以下攻略来了解。 作用 当处理数据时,常常会遇到缺失值。这些缺失值如果不进行处理,会影响到我们的分析结果。使用dropna()可以方便地去除包含缺失值的行或列,帮助我们得到更准确的结果。 使用方法 …

    Pandas函数大全 2023年3月22日
    00
  • 详解pandas.DataFrame.stack()(将数据框堆叠为序列)函数使用方法

    pandas.DataFrame.stack()方法介绍 pandas.DataFrame.stack()是一个用于多级索引的有用方法。它的作用是将DataFrame的列“压缩”成一列。每个堆叠的列将与索引的最低级别合并成一个新的单级列索引。 pandas.DataFrame.stack()方法的参数 pandas.DataFrame.stack()方法没有…

    Pandas函数大全 2023年3月22日
    00
  • 详解pandas.str.lower()(转换字符串为小写)函数使用方法

    pandas.str.lower()是一个Series对象方法,它用于将Series中的所有字符串转换为小写。 语法:Series.str.lower() 返回值:返回一个新的Series对象,其中包含所有字符串转换为小写后的结果。 下面通过两个实例来说明pandas.str.lower()的使用方法: 实例1 我们有一个包含姓名和职业的数据集。现在我们想要…

    Pandas函数大全 2023年3月22日
    00
合作推广
合作推广
分享本页
返回顶部