# How to compress columns of dataframe by function

+2

−0

# Problem

How can I compress each column of a dataframe to the output of a function (i.e., mean), preserving columns?

# MWE

```
import pandas as pd
data = {"A": [1, 2, 3, 4], "B": [5, 6, 7, 8]}
df = pd.DataFrame(data)
```

```
A B
0 1 5
1 2 6
2 3 7
3 4 8
```

# Desired Output

```
A B
0 2.5 6.5
```

# Tried

I was thinking one of the `apply()`

or `aggregate()`

functions would
work.
`apply`

has a `results_type`

field, but none of them produced the desired
output.

# Workarounds

These are workarounds I figured out that produce the desired outcome, but I find them cumbersome and un-intuitive, and feel there must be a simpler way I have not discovered.

Repetitive, cumbersome, and not scalable:

```
df = pd.DataFrame({"A": [df["A"].mean()], "B": [df["B"].mean()]})
```

Un-intuitive and long:

```
df.mean().to_frame().transpose()
```

## 2 comment threads