我找到了答案 test2 = test_pd.groupby(by = ['ID'])['country','color']。nunique()。reset_index()
idk,当rafael提供的链接未回答问题时,为什么将此问题标记为重复
我有一个3列的数据框:
country color ID
0 Germany Red 12
1 France Red 13
2 US Blue 11
3 France Red 11
如果我想找出SQL中每个ID的不同国家和颜色的数量,则为
select ID
, count(distinct(country)) as num_countries
, count(distinct(color)) as num_color
from table_name
group by ID;
结果将如下所示
ID num_countries num_color
0 12 1 1
0 11 2 2
0 13 1 1
如何在熊猫中获得相同的结果?
答案 0 :(得分:0)
df_unique=df.groupby('ID')['country','color'].nunique().add_prefix('num_').reset_index()
print(df_unique)
ID num_country num_color
0 11 2 2
1 12 1 1
2 13 1 1
答案 1 :(得分:0)
您要nunique()
:
df.gropuby('age_cd', as_index=False).nunique()