【问题标题】:Finding min with groupby in pandas data frame在熊猫数据框中使用 groupby 查找 min
【发布时间】:2017-08-04 06:31:01
【问题描述】:

我有以下示例df:

   idd   x     y
0  1     2     3
1  1     3     4
2  1     5     6
3  2     7     10 
4  2     9     8
5  3     11    12
6  3     13    14
7  3     15    16
8  3     17    18

我想通过“idd”使用groupby并找到x和y的最小值并将其与“idd”一起存储在一个新的df中。 在上面的df中,我希望idd=1的xmin为2,idd=1的ymin为3; idd = 2,xmin 应该是 7,ymin 应该是 8,依此类推。

期待df:

   idd   xmin   ymin
0  1     2      3
1  2     7      8
2  3     11     12

代码尝试:

for group in df.groupby("idd"):
    box = [df['x'].max(), df['y'].max()]

但它会找到整个列的 x 和 y 的最小值,而不是按照“idd”。

【问题讨论】:

    标签: python pandas numpy dataframe


    【解决方案1】:

    这是一种稍微不同的方法,无需重命名

    df = df.groupby('idd').min().add_suffix('min').reset_index()
    
        idd xmin    ymin
    0   1   2       3
    1   2   7       8
    2   3   11      12
    

    【讨论】:

      【解决方案2】:

      您可以使用 groupby ,然后为每个组取 min 。

      df.groupby('idd').min().reset_index().rename(columns={'x':'xmin','y':'ymin'})
      
      Out[105]: 
         idd  xmin  ymin
      0    1     2     3
      1    2     7     8
      2    3    11    12
      

      【讨论】:

        猜你喜欢
        • 2016-10-09
        • 2013-12-19
        • 2021-04-30
        • 2021-12-06
        • 2017-03-22
        • 2019-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多