【问题标题】:df.mean() / jupyter / pandas alternating axis for outputdf.mean() / jupyter / pandas 交替轴输出
【发布时间】:2018-12-23 07:41:57
【问题描述】:

我没有发布很多问题,但是,我发现了一个非常奇怪的行为导致交替输出。我希望有人可以帮助阐明这一点。

我正在使用 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

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

这是一个屏幕截图,以防有人有兴趣复制我所做的:

Jupyter window on my end

感谢阅读。

【问题讨论】:

    标签: python-3.x pandas dataframe jupyter mean


    【解决方案1】:

    您的问题是,在您的第二个单元格中,您将 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)
    

    【讨论】:

    • 感谢您的回答!这绝对有帮助。
    【解决方案2】:

    您可以使用describe

    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
    

    【讨论】:

    • 感谢您向我展示描述。我一定会记住这一点的。
    猜你喜欢
    • 2022-01-26
    • 2019-04-22
    • 2013-01-10
    • 2013-04-24
    • 1970-01-01
    • 2021-10-19
    • 2021-08-19
    • 2018-08-25
    • 2019-12-25
    相关资源
    最近更新 更多