<!--
{
  "availability" : [
    "iOS: 15.0.0 -",
    "iPadOS: 15.0.0 -",
    "macCatalyst: 15.0.0 -",
    "macOS: 12.0.0 -",
    "tvOS: 15.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 8.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "TabularData",
  "identifier" : "/documentation/TabularData/DataFrameProtocol/grouped(by:transform:)-3cr4p",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "TabularData"
    ],
    "preciseIdentifier" : "s:11TabularData0B13FrameProtocolPAAE7grouped2by9transformAA11RowGroupingVyqd_0_GSS_qd_0_Sgqd__SgXEtSHRd_0_r0_lF"
  },
  "title" : "grouped(by:transform:)"
}
-->

# grouped(by:transform:)

Creates a grouping of rows that the method selects
by choosing unique values the transform closure creates with elements of a
column you select by name.

```
func grouped<InputKey, GroupingKey>(by columnName: String, transform: (InputKey?) -> GroupingKey?) -> RowGrouping<GroupingKey> where GroupingKey : Hashable
```

## Parameters

`columnName`

The name of a column.

`transform`

A closure that transforms a column’s elements into a hashable type.

## Return Value

A collection of groups.

## Discussion

Create groupings that group rows by:

- Telephone area codes
- The first letter of a person’s last name
- A date’s year or quarter
- Number ranges

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)