當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pandas.core.groupby.DataFrameGroupBy.value_counts用法及代碼示例


用法:

DataFrameGroupBy.value_counts(subset=None, normalize=False, sort=True, ascending=False, dropna=True)

返回包含唯一行計數的係列或數據幀。

參數

subsetlist-like,可選

計算唯一組合時要使用的列。

normalize布爾值,默認為 False

返回比例而不是頻率。

sort布爾值,默認為真

按頻率排序。

ascending布爾值,默認為 False

按升序排列。

dropna布爾值,默認為真

不要包括包含 NA 值的行數。

返回

Series或DataFrame

如果 groupby as_index 為 True,則為係列,否則為 DataFrame。

注意

  • 如果 groupby as_index 為 True,則返回的 Series 將具有 MultiIndex,每個輸入列都有一個級別。

  • 如果 groupby as_index 為 False,則返回的 DataFrame 將有一個帶有 value_counts 的附加列。該列標記為‘count’ or ‘proportion’,具體取決於normalize 參數。

默認情況下,結果中會省略包含任何 NA 值的行。

默認情況下,結果將按降序排列,以便每個組的第一個元素是最多的 frequently-occurring 行。

例子

>>> df = pd.DataFrame({
...    'gender':['male', 'male', 'female', 'male', 'female', 'male'],
...    'education':['low', 'medium', 'high', 'low', 'high', 'low'],
...    'country':['US', 'FR', 'US', 'FR', 'FR', 'FR']
... })
>>> df
    gender      education       country
0       male    low         US
1       male    medium      FR
2       female  high        US
3       male    low         FR
4       female  high        FR
5       male    low         FR
>>> df.groupby('gender').value_counts()
gender  education  country
female  high       FR         1
                   US         1
male    low        FR         2
                   US         1
        medium     FR         1
dtype:int64
>>> df.groupby('gender').value_counts(ascending=True)
gender  education  country
female  high       FR         1
                   US         1
male    low        US         1
        medium     FR         1
        low        FR         2
dtype:int64
>>> df.groupby('gender').value_counts(normalize=True)
gender  education  country
female  high       FR         0.50
                   US         0.50
male    low        FR         0.50
                   US         0.25
        medium     FR         0.25
dtype:float64
>>> df.groupby('gender', as_index=False).value_counts()
   gender education country  count
0  female      high      FR      1
1  female      high      US      1
2    male       low      FR      2
3    male       low      US      1
4    male    medium      FR      1
>>> df.groupby('gender', as_index=False).value_counts(normalize=True)
   gender education country  proportion
0  female      high      FR        0.50
1  female      high      US        0.50
2    male       low      FR        0.50
3    male       low      US        0.25
4    male    medium      FR        0.25

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.core.groupby.DataFrameGroupBy.value_counts。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。