【问题标题】:Find min and max of every column for every label in pandas.DataFrame [duplicate]查找 pandas.DataFrame 中每个标签的每列的最小值和最大值 [重复]
【发布时间】:2019-05-29 21:14:26
【问题描述】:

我有一个名为 dfDataFrame,它有 4 列,如下所示:

A      B      C      Class
12     13     22     1
8      15     20     1
9      14     25     1
18     9      35     2 
5      14     30     2
4      12     28     2
35     87     67     3
35     82     66     3
20     7      32     4
10     8      32     4
22     7      31     4 
...    ...    ...    ...

我想要的是找到与班级相关的每一列的最小值和最大值。 换句话说,我想得到一个类似于下面的结果:

Class: 1
A: [8, 12]
B: [13, 15]
C: [20, 25]

Class: 2
A: [4, 18]
B: [9, 14]
C: [28, 35]

Class: 3
A: [35, 35]
B: [82, 87]
C: [66, 67]
...

【问题讨论】:

    标签: python python-3.x pandas dataframe


    【解决方案1】:

    df.groupby(df['Class']).agg(['min', 'max'])

    【讨论】:

      【解决方案2】:

      另一种方法

      df.groupby('Class').apply(lambda x: pd.Series([[min(x.A),max(x.A)],[min(x.B),max(x.B)],[min(x.C),max(x.C)]])).reset_index().rename(columns={0:'A',1:'B',2:'C'})
      

      输出

         Class         A         B         C
      0      1   [8, 12]  [13, 15]  [20, 25]
      1      2   [4, 18]   [9, 14]  [28, 35]
      2      3  [35, 35]  [82, 87]  [66, 67]
      3      4  [10, 22]    [7, 8]  [31, 32]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-25
        • 2018-03-12
        • 2015-01-09
        • 2021-05-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多