如何以水平格式打印Pandas DataFrame各列的均值?
解决Pandas列均值水平输出的问题
嗨,这个需求我做数据分析的时候也碰到过!默认用print(df.mean(axis=0))输出的是垂直排列的Series格式,想要转成水平布局其实很简单,给你分享几种实用的方法:
方法1:转置为DataFrame打印(保留表格结构)
df.mean(axis=0)返回的是一个Series,我们可以先把它转成DataFrame,再通过.T转置,这样打印出来就是水平布局了:
import pandas as pd import numpy as np # 构造示例DataFrame df = pd.DataFrame({ 'x': np.random.randn(100) - 100, 'y': np.random.randn(100), 'z': np.random.randn(100) }) # 水平打印列均值 print(df.mean(axis=0).to_frame().T)
输出效果:
x y z 0 -100.482156 -0.081388 -0.090348
如果不想显示索引0,可以再加一步去掉索引:
print(df.mean(axis=0).to_frame().T.to_string(index=False))
输出会更简洁:
x y z -100.482156 -0.081388 -0.090348
方法2:完全自定义纯文本格式(和你要的效果完全匹配)
如果想要严格按照x y z -100.482156 -0.081388 -0.090348这种无表格的纯文本格式输出,可以手动拼接列名和均值数值:
means = df.mean(axis=0) # 先拼接列名,再拼接均值,用空格分隔 output = ' '.join(means.index) + ' ' + ' '.join(map(str, means.values)) print(output)
这样就能得到你想要的精准格式啦!
内容的提问来源于stack exchange,提问作者sas142
相关产品推荐
相关产品推荐

