【问题标题】:Pandas: How to apply a groupby with as_index=FalsePandas:如何使用 as_index=False 应用 groupby
【发布时间】:2016-12-10 00:25:49
【问题描述】:

我需要在 python 中翻译这个 sql 查询:

SELECT VAR1, COUNT (VAR1) AS LINES, MAX(VAR2) 
FROM DF
GROUP BY VAR1

而且我需要获取 var1 作为列 (as_index=False)。问题是我无法重命名 COUNT(*) 函数。所以我唯一能做的就是:

DF=DF.groupby('VAR1',as_index=False).agg({'VAR1':np.size,'VAR"':np.max})

但显然我得到了这个错误:

ValueError: cannot insert VAR1, already exists

有人知道在 GROUPBY 中重命名 VAR1 的方法吗? 谢谢

【问题讨论】:

    标签: pandas group-by


    【解决方案1】:

    我认为您可以使用rename_axis 更改index 名称,然后reset_index 完美运行:

    DF = pd.DataFrame({'VAR1':[1,1,3],
                       'VAR':[4,5,6],
                       'C':[7,8,9],})
    
    print (DF)
       C  VAR  VAR1
    0  7    4     1
    1  8    5     1
    2  9    6     3
    
    DF=DF.groupby('VAR1')
         .agg({'VAR1':np.size,'VAR':np.max})
         .rename_axis('New')
         .reset_index()
    print (DF)
       New  VAR1  VAR
    0    1     2    5
    1    3     1    6
    

    【讨论】:

      猜你喜欢
      • 2019-01-22
      • 2021-11-18
      • 1970-01-01
      • 2021-03-25
      • 2022-01-24
      • 2017-05-05
      • 2020-11-19
      • 2021-08-28
      • 2017-12-19
      相关资源
      最近更新 更多