Python pandas.Series.str

本文详细介绍了Pandas库中Series对象的字符串操作方法,包括replace和match函数的使用。replace函数用于替换Series中的字符串,参数pat可以是字符串或正则表达式,repl用于指定替换的内容。match函数用于在Series的每个元素上应用正则表达式,返回匹配结果的布尔值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. replace

  • Series.str.replace(patrepln=-1case=Noneflags=0regex=True)
Parameters:

pat : string or compiled regex

String can be a character sequence or regular expression.

New in version 0.20.0: pat also accepts a compiled regex.

repl : string or callable

Replacement string or a callable. The callable is passed the regex match object and must return a replacement string to be used. See re.sub().

New in version 0.20.0: repl also accepts a callable.

n : int, default -1 (all)

Number of replacements to make from start

case : boolean, default None

  • If True, case sensitive (the default if pat is a string)
  • Set to False for case insensitive
  • Cannot be set if pat is a compiled regex

flags : int, default 0 (no flags)

  • re module flags, e.g. re.IGNORECASE
  • Cannot be set if pat is a compiled regex

regex : boolean, default True

  • If True, assumes the passed-in pattern is a regular expression.
  • If False, treats the pattern as a literal string
  • Cannot be set to False if pat is a compiled regex or repl is a callable.

New in version 0.23.0.

Returns:

replaced : Series/Index of objects

Raises:

ValueError

  • if regex is False and repl is a callable or pat is a compiled regex
  • if pat is a compiled regex and case or flags is set

 

pat: 可以是字符串或者正则表达式

# pat = string
# 匹配字符串并替换
>>> pd.Series(['f.o', 'fuz', np.nan]).str.replace('f.', 'ba', regex=False)
0    bao
1    fuz
2    NaN
dtype: object

>>> pd.Series(['abc', 'deec']).str.replace('c', '', regex=False)
0     ab
1    dee
dtype: object

>>> pd.Series(['abca', 'deeca']).str.replace('ca', '', regex=False)
0     ab
1    dee
dtype: object

# pat = regex
# 用正则表达式进行字符串匹配
>>> pd.Series(['f  (oo)', 'buo', 'sio']).str.replace('\s*\(\w*\)', '', regex=True)
0      f
1    buo
2    sio
dtype: object

 

2. match

 

  • Series.str.match(patcase=Trueflags=0na=nanas_indexer=None)
  • 对Series的每个值匹配正则表达式,并返回True/False
>>>ut.RegionName.str.match('[\w\s]*\[edit\]')

 

### Pandas `str` 方法详解 在数据科学领域,字符串操作是数据清洗和处理中不可或缺的一部分。Pandas 的 `Series.str` 接口提供了强大的字符串操作功能,能够简化复杂的字符串处理任务[^2]。 #### 基本属性与方法 `Series.str` 属性允许访问一系列用于字符串操作的方法。下面列举了一些常用的字符串处理方法: - **提取子串** 可以使用 `.str.slice()` 或者更直观的方式如 `.str[start:end]` 来获取指定位置的字符或子串。 ```python s = pd.Series(['hello world', 'pandas']) print(s.str[:5]) ``` - **分割字符串** 使用 `.str.split()` 将字符串按照特定分隔符拆分成多个部分,默认情况下返回列表形式的结果;如果只需要前几项,则可以设置参数 `n` 和 `expand=True` 得到 DataFrame 形式的输出。 ```python s = pd.Series(['a_b_c', 'd_e_f', 'g_h_i']) print(s.str.split('_', expand=True)) ``` - **去除空白字符** 提供了多种方式来清理两端多余的空格,比如 `.str.strip()`, `.str.lstrip()`, 和 `.str.rstrip()` 分别对应于移除全部、左侧以及右侧的空白字符。 ```python s = pd.Series([' hello ', '\tworld\n', ' test ']) print(s.str.strip()) ``` - **大小写转换** 支持常见的大小写变换操作,像 `.str.lower()`, `.str.upper()`, 和 `.str.title()` 等等。 ```python s = pd.Series(['HELLO', 'WORLD']) print(s.str.lower()) ``` - **正则表达式匹配** 利用正则表达式来进行模式匹配是一项非常实用的功能。`.str.contains()`, `.str.match()`, `.str.extract()`, 和 `.str.findall()` 都支持 regex 参数以便执行高级查询。 ```python s = pd.Series(['foo', 'bar', 'baz']) print(s[s.str.contains('ba')]) ``` 以上只是对 `Series.str` 功能的一个简单介绍,在实际工作中还有很多其他有用的方法等待探索。对于更加复杂的需求,建议查阅官方文档获得最新最全的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值