【发布时间】:2016-10-18 13:01:19
【问题描述】:
我需要从 df 计算唯一用户数。我正在使用 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
我不想要这个。我想要一个我在“预期输出”中提到的数据框
我尝试使用 - 将此系列转换为数据框 - pd.DataFrame(df)
但这给了-
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
同样,这与“预期输出”不同
【问题讨论】: