我没有发布很多问题,但是,我发现了一种非常奇怪的行为,导致交替输出。我希望有人能帮助阐明这一点。
我正在使用 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 来运行第二个单元格,这就是我将得到的结果:
1992 33312.107476 1993 41861.859541 1994 39493.304941 1995 47743.550969 dtype: float64
当我使用 shift + Enter 再次运行单元格时(输出被截断,但您应该明白)
0 5447.716574 1 126449.084350 2 41091.469083 3 -61754.197831 4 223744.364842 5 94746.779056 6 57607.078825 7 109812.089923 8 28283.060354 9 69768.157194 10 32952.030326 11 40222.026635 12 64786.632304 13 17025.266684 14 111334.168830 15 96067.788206 16 -68157.985363
我尝试更改轴参数并删除轴参数,但输出保持不变
这是一个屏幕截图,以防有人有兴趣复制我所做的事情:
感谢您的阅读。
最佳答案
您的问题是,在第二个单元格中,您将 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)
关于python-3.x - df.mean()/jupyter/pandas 交替轴输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51350296/