Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

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()
Why does this post require moderator attention?
You might want to add some details to your flag.
Why should this post be closed?

2 comment threads

How would that simpler way look like? (2 comments)
I'd say the alledged „Un-intuitive and long“ ”workaround” is the solution. (1 comment)

0 answers

Sign up to answer this question »