2016-12-09 1 views
0

거짓 내가 파이썬에서이 SQL 쿼리를 변환해야합니다팬더 : as_index와 GROUPBY을 적용하는 방법 =

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

내가 열로 VAR1을 확보 할 필요가 (as_index = 거짓). 문제는 COUNT (*) 함수의 이름을 바꿀 수 없다는 것입니다. 그래서 내가 할 수있는 유일한 것은 이것이다 :

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

하지만 분명이 오류 얻을 :

ValueError: cannot insert VAR1, already exists 

누군가가 GROUPBY 내에서 VAR1의 이름을 변경하는 방법을 알고 않습니다를? 감사

답변

0

당신이 변화 index 이름 rename_axis을 사용할 수 있다고 생각하고 완벽하게 다음 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 
관련 문제