簡體   English   中英

如何使用 Pandas/python 僅計算 groupby 的唯一值?

[英]How do I count only unique values with groupby using pandas/python?

我可以對這個 Pandas 數據框做些什么來讓它只計算“Unique_Id”的唯一/不同值? 我嘗試過的一切都給了我獨特的社區價值觀,否則會引發錯誤。

df.groupby("Community")["Unique_Id"].count().sort_values(ascending = False)

這是我得到的輸出:

Comunidad_Autónoma
Cataluña                534415
Comunidad Valenciana    475411
Madrid                  415047
Islas Canarias          171939
País Vasco              168297
Navarra                  57045
La Rioja                 26057
Name: Unique_Id, dtype: int64

一種可能的選擇是在調用 groupby 方法之前使用pandas.DataFrame.drop_duplicates 在下面的示例中,馬德里有一個重復的 ID:

import pandas as pd

df = pd.DataFrame(dict(
    Community = 'Cataluña,Madrid,Cataluña,Madrid,Cataluña,Madrid'.split(','),
    Unique_Id = [1, 2, 3, 4, 5, 2],
))

df1 = df.drop_duplicates(
        ['Community','Unique_Id']
    ).groupby(
        'Community'
    )['Unique_Id'].count().sort_values(ascending = False)

print(df1)
print(f'\nTotal Unique_Ids Across All Communities: {sum(df1.values)}')

Python Tutor 中的示例代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM