2016-10-18 18 views
1

df에서 고유 사용자 수를 계산해야합니다. 나는 GROUPBY 기능을 사용하고 있습니다 -Python 3.x - nunique가 groupby와 작동하지 않습니다.

df - 
col1 col2 col3 col4 
a p x 7 
a p x 3 
b q y 5 
b r y 2 
c s z 5 
c t z 9 

Unique_df = df.groupby(['col1','col2','col3'],as_index=False)['col4'].nunique() 

예상 출력을

Unique_df - 
col1 col2 col3 col4 
a p x 2 
b q y 1 
b r y 1 
c s z 1 
c t z 1 

불행하게도 나는 다음과 같은 오류 얻을 - AttributeError를 'DataFrameGroupBy'개체가 어떤 속성 'nunique'

방법이 없습니다 예상되는 출력을 얻을 수 있습니까?

편집 -

df.groupby(['col1','col2','col3'],as_index=False)['col4'].apply(lambda x: len(x.unique())) 

을하지만 불행하게도 그것은 나에게 시리즈 준다 - - 나는 시도 나는이 원하지 않는

col1 col2 col3 
a p x 7 
a p x 3 
b q y 5 
b r y 2 
c s z 5 
c t z 9 

합니다. 다시

   col4 
col1 col2 col3 
a p x 7 
a p x 3 
b q y 5 
b r y 2 
c s z 5 
c t z 9 

- pd.DataFrame (DF)

하지만이 있습니다 - 나는 '예상 출력'에서 언급 한 바와 같이 나는

내가 사용 dataframe에이 시리즈를 변환하기 위해 시도한 dataframe을 원한다 , '예상 출력'과 다릅니다.

답변

0

며칠 전에 같은 문제가 발생했습니다. 내 컴퓨터에서 작동하지만 다른 컴퓨터에서는 작동하지 않는 group.nunique()를 사용했습니다.

나는 anaconda (conda update --all)를 업데이트하여이를 해결했다. 나는 그것이 낡은 numpy 라이브러리 (conda update numpy)에 의해 야기되었다고 의심한다. (conda update numpy) ...

나는 그것이 도움이되기를 바란다!

관련 문제