Python 3.x df.mean()/jupyter/pands交替轴输出

Python 3.x df.mean()/jupyter/pands交替轴输出,python-3.x,pandas,dataframe,jupyter,mean,Python 3.x,Pandas,Dataframe,Jupyter,Mean,我没有发布很多问题,但是,我发现一个非常奇怪的行为导致了交替输出。我希望有人能帮我弄清楚这件事 我正在使用jupyter,我正在创建一些如下数据: # Use the following data for this assignment: import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline np.random.seed(12345) df = pd.DataFr

我没有发布很多问题,但是,我发现一个非常奇怪的行为导致了交替输出。我希望有人能帮我弄清楚这件事

我正在使用jupyter,我正在创建一些如下数据:

# Use the following data for this assignment:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

%matplotlib inline

np.random.seed(12345)

df = pd.DataFrame([np.random.normal(32000,200000,3650), 
                   np.random.normal(43000,100000,3650), 
                   np.random.normal(43500,140000,3650), 
                   np.random.normal(48000,70000,3650)], 
                  index=[1992,1993,1994,1995])
df
现在,在下一个单元格中,我有几行,得到DF的转置,然后得到平均值和标准偏差。然而,当我多次运行这个单元格时,我似乎从.mean得到了不同的输出

df = df.T
values = df.mean(axis=0)
std = df.std(axis=0)
values
我正在使用shift enter运行第二个单元格,这是我将得到的结果:

当我使用shift+enter再次运行单元格时,输出会被截断,但您应该明白了

我已尝试更改轴参数并删除轴参数,但输出保持不变

下面是一个屏幕截图,以防有人对复制我所做的工作感兴趣:


感谢阅读。

您的问题是,在第二个单元格中,您将df重新分配为df.T,因此每次都会再次转置数据帧。因此,您可以做的是:不要使用df=df.t,只需这样说:

values = df.T.mean(axis=0)
std = df.T.std(axis=0)
或者更好的方法是,使用axis=1将其应用于列而不是行,无需转置:

values = df.mean(axis=1)
std = df.std(axis=1)
你可以用形容词


谢谢你的回答!这肯定有帮助。谢谢你给我看。我一定会记住这一点。
values = df.T.mean(axis=0)
std = df.T.std(axis=0)
values = df.mean(axis=1)
std = df.std(axis=1)
df.T.describe()
Out[267]: 
                1992           1993           1994           1995
count    3650.000000    3650.000000    3650.000000    3650.000000
mean    34922.760627   41574.363827   43186.197526   49355.777683
std    200618.445749   98495.601455  140639.407130   70408.448642
min   -632057.636640 -292484.131067 -435217.159232 -181304.694667
25%    -98715.272565  -24771.835741  -49460.639563    -973.422386
50%     34446.219184   41474.621854   43323.557410   49281.270881
75%    170722.706967  107502.446843  136286.933017   97422.070284
max    714855.084396  453834.306915  516751.566696  295427.273677