在Pandas和Python中查找第一列相同的所有行的min、max、avg

在Pandas和Python中查找第一列相同的所有行的min、max、avg,python,pandas,max,average,min,Python,Pandas,Max,Average,Min,是否可以用相同的第一列找到所有数据的最小值、最大值和平均值 例如,对于第一列1\u 204192587: 考虑从4到n的所有行和列 查找第4+列中所有条目的最小值、最大值和平均值,以及第一列中具有**1\u 204192587**值的所有行 也就是说,为下面所示的每个唯一的起始值描述数据 我试过了 df=data.groupby(["Start"]).describe() 但这不是我想要的 我还尝试在描述时指定轴 data.apply.(pd.DataFrame.d

是否可以用相同的第一列找到所有数据的最小值、最大值和平均值

例如,对于第一列
1\u 204192587

  • 考虑从4到n的所有行和列

  • 查找第4+列中所有条目的最小值、最大值和平均值,以及第一列中具有
    **1\u 204192587**
    值的所有行

    也就是说,为下面所示的每个唯一的起始值描述数据

  • 我试过了

    df=data.groupby(["Start"]).describe() 
    
    但这不是我想要的

    我还尝试在描述时指定轴

    data.apply.(pd.DataFrame.describe, axis=1) 
    
    但我犯了个错误

    期望输出

    unique key/first column value   MIN   MAX   AVG
     1_204192587                    *     *      *
     1_204197200                    *     *      *
    
    我是初学者,提前感谢您的回复。

    您可以使用以下选项:

    df.loc[4:][.descripe()
    
    df
    是您的数据帧
    [4::
    选择第五行并打开
    .descripe()
    提供统计摘要(平均值、平均值…)

    您还可以添加
    .transpose()
    和end以获得所需的输出

    如果要将其分配给另一个变量(dataframe)

    所以它看起来像:

    new_df=df.loc[4:][.descripe().trasnpose()
    
    我想您需要比较每个组的所有数字列,因此将
    开始
    列转换为
    索引
    ,然后选择数字列依据、重塑依据和最后使用依据索引:

        data = pd.DataFrame({
            'A':list('abcdef'),
             'B':[4,5,4,5,5,4],
             'C':[7,8,9,4,2,3],
             'D':[1,3,5,7,1,0],
             'E':[5,3,6,9,2,4],
             'Start':list('aaabbb')
    })
    df1 = data.set_index("Start").select_dtypes(np.number).stack().groupby(level=0).describe() 
    print (df1)
           count      mean       std  min   25%  50%   75%  max
    Start                                                      
    a       12.0  5.000000  2.256304  1.0  3.75  5.0  6.25  9.0
    b       12.0  3.833333  2.516611  0.0  2.00  4.0  5.00  9.0
    
    或通过以下方式指定聚合函数列表:


    你好请花点时间阅读这篇文章,以及如何提供答案,并相应地修改你的问题。这些提示可能也很有用。
        data = pd.DataFrame({
            'A':list('abcdef'),
             'B':[4,5,4,5,5,4],
             'C':[7,8,9,4,2,3],
             'D':[1,3,5,7,1,0],
             'E':[5,3,6,9,2,4],
             'Start':list('aaabbb')
    })
    df1 = data.set_index("Start").select_dtypes(np.number).stack().groupby(level=0).describe() 
    print (df1)
           count      mean       std  min   25%  50%   75%  max
    Start                                                      
    a       12.0  5.000000  2.256304  1.0  3.75  5.0  6.25  9.0
    b       12.0  3.833333  2.516611  0.0  2.00  4.0  5.00  9.0
    
    df2 = (data.set_index("Start")
               .select_dtypes(np.number)
               .stack()
               .groupby(level=0)
               .agg(['min','max','mean']))
    print (df2)
           min  max      mean
    Start                    
    a        1    9  5.000000
    b        0    9  3.833333