使用pandas.DataFrame.mean时返回pandas DataFrame

p-r*_*bot 2 python dataframe pandas

该函数pandas.DataFrame.mean始终返回pandas.Series。我希望它返回一个与原始数据框具有相同列名的数据框。如何做到这一点?

import numpy as np, pandas as pd
df = pd.DataFrame(np.random.rand(10,5), columns = ['a', 'b', 'c', 'd', 'e'])
Run Code Online (Sandbox Code Playgroud)

这将返回pandas.Series对象

df.mean()
Run Code Online (Sandbox Code Playgroud)

这也是

df.mean(level = 0)
Run Code Online (Sandbox Code Playgroud)

这也是

df.mean(axis = 0)
Run Code Online (Sandbox Code Playgroud)

我当前的操作方式是使用以下命令,这是最简单的方法吗?

means = df.mean(axis = 0)
pd.DataFrame(means).T
Run Code Online (Sandbox Code Playgroud)

我希望有一个更直接的解决方案!

EdC*_*ica 6

您可以使用to_frame和转置来做到这一点:

In [188]:
df.mean().to_frame().T

Out[188]:
          a         b         c        d         e
0  0.393221  0.441338  0.445528  0.67516  0.699105
Run Code Online (Sandbox Code Playgroud)