<!--
{
  "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/Column",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "TabularData"
    ],
    "preciseIdentifier" : "s:11TabularData6ColumnV"
  },
  "title" : "Column"
}
-->

# Column

A column in a data frame.

```
struct Column<WrappedElement>
```

## Overview

A column is a <doc://com.apple.documentation/documentation/Swift/Collection> that contains
values of a specific type, including:

- <doc://com.apple.documentation/documentation/Swift/Int>
- <doc://com.apple.documentation/documentation/Swift/Double>
- <doc://com.apple.documentation/documentation/Swift/String>

Each element in a column is an
<doc://com.apple.documentation/documentation/Swift/Optional>
of the column’s type. Each `nil` element represents a missing value.

## Topics

### Creating a Column

[`init(name:capacity:)`](/documentation/TabularData/Column/init(name:capacity:))

Creates a column with a name and a capacity.

[`init(_:capacity:)`](/documentation/TabularData/Column/init(_:capacity:))

Creates a column with a column identifier and a capacity.

[`init(name:contents:)`](/documentation/TabularData/Column/init(name:contents:)-6okx3)

Creates a column with a name and a sequence of nonoptional values.

[`init(name:contents:)`](/documentation/TabularData/Column/init(name:contents:)-8nxtj)

Creates a column with a name and a sequence of optional values.

[`init(_:contents:)`](/documentation/TabularData/Column/init(_:contents:)-1871a)

Creates a column with an identifier and a sequence of nonoptional values.

[`init(_:contents:)`](/documentation/TabularData/Column/init(_:contents:)-7z5ji)

Creates a column with a column identifier and a sequence of optional values.

[`init(_:)`](/documentation/TabularData/Column/init(_:))

Creates a column from a column slice.

### Creating a Column of the Same Type

[`prototype`](/documentation/TabularData/Column/prototype)

A prototype that creates type-erased columns with the same underlying type as the column slice.

### Creating a Type-Erased Column

[`eraseToAnyColumn()`](/documentation/TabularData/Column/eraseToAnyColumn())

Generates a type-erased copy of the column.

### Creating Transformed Columns

[`map(_:)`](/documentation/TabularData/Column/map(_:))

Creates a new column by applying a transformation to every element.

[`mapNonNil(_:)`](/documentation/TabularData/Column/mapNonNil(_:))

Creates a new column by applying the transformation to every element that isn’t missing.

### Inspecting a Column

[`name`](/documentation/TabularData/Column/name)

The name of the column.

[`count`](/documentation/TabularData/Column/count)

The number of elements in the column.

[`missingCount`](/documentation/TabularData/Column/missingCount)

The number of missing elements in the column.

[`Column.Element`](/documentation/TabularData/Column/Element)

The type of the column’s elements, which is an optional type of the column’s type.

[`wrappedElementType`](/documentation/TabularData/Column/wrappedElementType)

The underlying type of the column’s elements.

### Transforming a Column

[`transform(_:)`](/documentation/TabularData/Column/transform(_:)-271dd)

Applies a transformation to every element that isn’t missing.

[`transform(_:)`](/documentation/TabularData/Column/transform(_:)-6mrwg)

Applies a transformation to every element in the column.

### Adding Elements

[`append(_:)`](/documentation/TabularData/Column/append(_:)-qycj)

Appends a nonoptional value to the column.

[`append(_:)`](/documentation/TabularData/Column/append(_:)-4t2pt)

Appends an optional value to the column.

[`append(contentsOf:)`](/documentation/TabularData/Column/append(contentsOf:)-qb4p)

Appends a sequence of nonoptional values to the column.

[`append(contentsOf:)`](/documentation/TabularData/Column/append(contentsOf:)-42y1d)

Appends a sequence of optional values to the column.

### Finding an Element Index

[`argmin()`](/documentation/TabularData/Column/argmin())

Returns the index of the element with the lowest value, ignoring missing elements.

[`argmax()`](/documentation/TabularData/Column/argmax())

Returns the index of the element with the highest value, ignoring missing elements.

### Removing an Element

[`remove(at:)`](/documentation/TabularData/Column/remove(at:))

Removes an element from the column.

### Accessing Elements

[`subscript(_:)`](/documentation/TabularData/Column/subscript(_:)-qm4d)

Accesses an element at an index.

[`subscript(_:)`](/documentation/TabularData/Column/subscript(_:)-52xy1)

Accesses a contiguous range of elements with a range expression.

[`subscript(_:)`](/documentation/TabularData/Column/subscript(_:)-gne9)

Accesses a contiguous range of elements.

### Creating a Slice of Unique Elements

[`distinct()`](/documentation/TabularData/Column/distinct())

Generates a discontiguous slice that contains unique elements.

### Creating a Slice by Masking Elements

[`subscript(_:)`](/documentation/TabularData/Column/subscript(_:)-56i2s)

Returns a column slice that includes elements that correspond to a collection of Booleans.

### Encoding a Column

[`encoded(using:)`](/documentation/TabularData/Column/encoded(using:))

Generates a column by encoding each element’s value.

### Decoding a Column

[`decoded(_:using:)`](/documentation/TabularData/Column/decoded(_:using:))

Generates a column by decoding each element’s data.

### Summarizing a Column

[`summary()`](/documentation/TabularData/Column/summary())

Generates a categorical summary of the column’s elements.

[`numericSummary()`](/documentation/TabularData/Column/numericSummary()-2m0sr)

Generates a numeric summary of the integer column’s elements.

[`numericSummary()`](/documentation/TabularData/Column/numericSummary()-8laeo)

Generates a numeric summary of the floating-point column’s elements.

### Getting Statistical Values

[`sum()`](/documentation/TabularData/Column/sum())

Returns the sum of the column’s elements, ignoring missing elements.

[`min()`](/documentation/TabularData/Column/min())

Returns the element with the lowest value, ignoring missing elements.

[`max()`](/documentation/TabularData/Column/max())

Returns the element with the highest value, ignoring missing elements.

[`mean()`](/documentation/TabularData/Column/mean()-2si7j)

Returns the mean average of the integer column’s elements, ignoring missing elements.

[`mean()`](/documentation/TabularData/Column/mean()-ic5z)

Returns the mean average of the floating-point column’s elements, ignoring missing elements.

[`standardDeviation(deltaDegreesOfFreedom:)`](/documentation/TabularData/Column/standardDeviation(deltaDegreesOfFreedom:)-9ffqu)

Returns the standard deviation of the integer column’s elements, ignoring missing elements.

[`standardDeviation(deltaDegreesOfFreedom:)`](/documentation/TabularData/Column/standardDeviation(deltaDegreesOfFreedom:)-4kc16)

Returns the standard deviation of the floating-point column’s elements, ignoring missing elements.

### Describing a Column

[`description`](/documentation/TabularData/Column/description)

A text representation of the column.

[`debugDescription`](/documentation/TabularData/Column/debugDescription)

A text representation of the column suitable for debugging.

[`customMirror`](/documentation/TabularData/Column/customMirror)

A mirror that reflects the column.

### Comparing Two Columns

### Modifying a Column with a Value

[`+=(_:_:)`](/documentation/TabularData/Column/+=(_:_:)-94q8g)

Modifies a column by adding a value to each element.

[`-=(_:_:)`](/documentation/TabularData/Column/-=(_:_:)-8arlr)

Modifies a column by subtracting a value from each element.

[`*=(_:_:)`](/documentation/TabularData/Column/*=(_:_:)-4rraw)

Modifies a column by multiplying each element by a value.

[`/=(_:_:)`](/documentation/TabularData/Column/_=(_:_:)-8jmir)

Modifies an integer column by dividing each element by a value.

[`/=(_:_:)`](/documentation/TabularData/Column/_=(_:_:)-3hfr5)

Modifies a floating-point column by dividing each element by a value.

### Modifying a Column with a Collection of Values

[`+=(_:_:)`](/documentation/TabularData/Column/+=(_:_:)-2w5o4)

Modifies a column by adding each value in a collection to
the corresponding element in the column.

[`+=(_:_:)`](/documentation/TabularData/Column/+=(_:_:)-2scuy)

Modifies a column by adding each optional value in a collection to
the corresponding element in the column.

[`-=(_:_:)`](/documentation/TabularData/Column/-=(_:_:)-8rgjq)

Modifies a column by subtracting each value in a collection from
the corresponding element in the column.

[`-=(_:_:)`](/documentation/TabularData/Column/-=(_:_:)-3v0hh)

Modifies a column by subtracting each optional value in a collection from
the corresponding element in the column.

[`*=(_:_:)`](/documentation/TabularData/Column/*=(_:_:)-8mmnn)

Modifies a column by multiplying each element in the column by
the corresponding value in a collection.

[`*=(_:_:)`](/documentation/TabularData/Column/*=(_:_:)-6kp11)

Modifies a column by multiplying each element in the column by
the corresponding optional value in a collection.

[`/=(_:_:)`](/documentation/TabularData/Column/_=(_:_:)-dnma)

Modifies an integer column by dividing each element in the column by
the corresponding value in a collection.

[`/=(_:_:)`](/documentation/TabularData/Column/_=(_:_:)-8xhzg)

Modifies an integer column by dividing each element in the column by
the corresponding optional value in a collection.

[`/=(_:_:)`](/documentation/TabularData/Column/_=(_:_:)-86t1j)

Modifies a floating-point column by dividing each element in the column by
the corresponding value in a collection.

[`/=(_:_:)`](/documentation/TabularData/Column/_=(_:_:)-3acz8)

Modifies a floating-point column by dividing each element in the column by
the corresponding optional value in a collection.

### Generating a Column by Combining Two Columns

### Generating a Column by Adding a Value

### Generating a Column by Subtracting a Value

### Generating a Column by Multiplying a Value

### Generating a Column by Dividing a Value

### Supporting Types

### Invoking Protocol Methods

  <doc:API-Sequence--Column>

  <doc:API-Collection--Column>

  <doc:API-Bidirectional-Collection--Column>

  <doc:API-Random-Access-Collection--Column>



---

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)