我需要在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的方法吗? 感谢
答案 0 :(得分:0)
我认为您可以使用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