re库中group(), groups(), groupdict() 用法

group()

返回一个或多个匹配的字串。如果只有一个参数,结果只有单个字符串;如果有多个参数,结果是一个元组,元组里每一项对应一个参数。没有参数,group1默认是0(整个匹配串被返回)。如果groupN参数是0,对应的返回值是整个匹配串;如果它属于[1,99],返回对应的一项括号分隔的群。如果参数是负数或大于模式串中定义的群数,IndexError异常会被抛出。如果模式串没有任何匹配,group返回None;如果模式串多次匹配,group将返回最后一次匹配。

>>> m = re.match(r"(\w+) (\w+)", "Isaac Newton, physicist")
>>> m.group(0)       # The entire match 整个匹配
'Isaac Newton'
>>> m.group(1)       # The first parenthesized subgroup. 第一个括号分隔的子群
'Isaac'
>>> m.group(2)       # The second parenthesized subgroup. 第二个括号分隔的子群
'Newton'
>>> m.group(1, 2)    # Multiple arguments give us a tuple. 多个参数给我们一个元组
('Isaac', 'Newton')
In [2]: m = re.match(r"(..)+", "a1b2c3")  # 三次匹配
In [3]: m.group(0)                        # 返回整个匹配串
Out[3]: 'a1b2c3'                          
In [4]: m.group(1)                        # 只返回最后一个匹配 
Out[4]: 'c3'
In [5]: m.group(2)
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-5-9b74dc8a1297> in <module>()
----> 1 m.group(2)
IndexError: no such group

groups()

它返回一个包含所有匹配子群的元组。

>>> m = re.match(r"(\d+)\.(\d+)", "24.1632")
>>> m.groups()
('24', '1632')

groupdict()

它返回一个字典,包含所有经命名的匹配子群,键值是子群名。

>>> m = re.match(r'(?P<user>\w+)@(?P<website>\w+)\.(?P<extension>\w+)','myname@hackerrank.com')
>>> m.groupdict()
{'website': 'hackerrank', 'user': 'myname', 'extension': 'com'}

题目练习:Group(),Groups()&Groupdict()

 

  • 20
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python的pandas库中groupby()方法用于对DataFrame对象进行分组操作。它可以根据指定的列或多列对数据进行分组,并返回一个GroupBy对象。 groupby()方法的语法格式如下: ``` df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs) ``` 其中,参数的含义如下: - by:用于指定分组的列名或列名列表。 - axis:指定按行(axis=0)还是按列(axis=1)进行分组,默认为按行分组。 - level:用于多级索引的分组操作。 - as_index:是否将分组的列作为新的DataFrame的索引,默认为True。 - sort:是否对结果进行排序,默认为True。 - group_keys:是否在结果中包含组键,默认为True。 - squeeze:如果结果只有一列,则返回Series而不是DataFrame,默认为False。 - observed:指定观察到的唯一值,默认为False。 例如,我们可以使用groupby()方法按照某一列进行分组,并对另一列进行聚合操作: ```python import pandas as pd data = {'Name': ['Tom', 'Nick', 'John', 'Tom', 'Nick'], 'Age': [25, 30, 35, 25, 30], 'Salary': [5000, 6000, 7000, 5500, 6500]} df = pd.DataFrame(data) grouped = df.groupby('Name')['Salary'].sum() print(grouped) ``` 输出结果为: ``` Name John 7000 Nick 12500 Tom 10500 Name: Salary, dtype: int64 ``` 在上述例子中,我们创建了一个包含员工数据的DataFrame对象,并使用groupby()方法按照Name列进行分组。然后,我们对Salary列进行sum()聚合操作,得到每个员工的工资总和。最后,我们打印出了结果。 groupby()方法常用于数据的分组和聚合操作,可以对数据进行统计、汇总和分析。通过组合使用groupby()方法和其他函数,可以实现更复杂的数据处理需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值