Pandas Series.value_counts() 函式
Suraj Joshi
2023年1月30日
-
pandas.Series.value_counts()
語法 -
示例程式碼:使用
Series.value_counts()
方法計算 Pandas Series 中唯一元素的頻率 -
示例程式碼:在
Series.value_counts()
方法中設定normalize=True
來獲得元素的相對頻率 -
示例程式碼:在
Series.value_counts()
方法中設定ascending=True
,根據頻率值按升序排列元素 -
示例程式碼:在
Series.value_counts()
方法中設定bins
引數,獲得位於半開分割槽的值的計數 -
示例程式碼:在
Series.value_counts()
方法中設定dropna=False
為NaN
計數
pandas.Series.value_counts()
方法計算 Series 中每個獨特元素的出現次數。
pandas.Series.value_counts()
語法
Series.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)
引數
normalize |
布林型。唯一值的相對頻率(normalize=True )或唯一值的絕對頻率(normalize=False ) |
sort |
布林型。根據頻率對元素進行排序(sort=True )或不對系列物件進行排序(sort=False ) |
ascending |
布林型。按升序(ascending=True )或降序(ascending=False )排序 |
bins |
整數。Series 物件的數值範圍被劃分的分割槽數 |
dropna |
布林型。包括 NaN (dropna=False )的計數或不包括 NaN (dropna=True )的計數 |
返回值
它返回一個由唯一值的計陣列成的 Series
物件。
示例程式碼:使用 Series.value_counts()
方法計算 Pandas Series 中唯一元素的頻率
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
absolute_counts=df["X"].value_counts()
print("Frequencies of elements of X column:")
print(absolute_counts)
輸出:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Frequencies of elements of X column:
3.0 2
2.0 1
1.0 1
Name: X, dtype: int64
Series 物件 absolute_counts
使用 Series.value_counts()
方法給出了列 X
中每個獨特元素的計數。
Series.value_counts()
預設不統計 NaN
。我們將在下面的章節中介紹如何計算它。
示例程式碼:在 Series.value_counts()
方法中設定 normalize=True
來獲得元素的相對頻率
如果我們在 Series.value_counts()
方法中設定 normalize=True
,就可以得到 Series
物件中所有獨特元素的相對頻率。
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
relative_counts=df["X"].value_counts(normalize=True)
print("Relative Frequencies of elements of X column:")
print(relative_counts)
輸出:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Frequencies of elements of X column:
3.0 0.50
2.0 0.25
1.0 0.25
Name: X, dtype: float64
Series 物件 relative_counts
給出了列 X
中每個獨特元素的相對頻率。
相對頻率是由所有絕對頻率除以絕對頻率之和得到的。
示例程式碼:在 Series.value_counts()
方法中設定 ascending=True
,根據頻率值按升序排列元素
如果我們在 Series.value_counts()
方法中設定 ascending=True
,就會得到 Series
物件,其元素根據頻率值按升序排序。
預設情況下,從 Series.value_counts()
方法返回的 Series 物件中的值是根據頻率值降序排序的。
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
sorted_counts=df["X"].value_counts(ascending=True)
print("Frequencies of elements of X column:")
print(sorted_counts)
輸出:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Frequencies of elements of X column:
1.0 1
2.0 1
3.0 2
Name: X, dtype: int64
它給出了 X
列中每個唯一物件的計數,頻率值按升序排列。
示例程式碼:在 Series.value_counts()
方法中設定 bins
引數,獲得位於半開分割槽的值的計數
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3, 4, 5],
'Y': [4, np.nan, 8, np.nan, 3, 2, 1]})
print("DataFrame:")
print(df)
counts=df["X"].value_counts(bins=3)
print("Frequencies:")
print(counts)
輸出:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
5 4.0 2.0
6 5.0 1.0
Frequencies:
(3.667, 5.0] 2
(2.333, 3.667] 2
(0.995, 2.333] 2
Name: X, dtype: int64
它將 Series
,即 X
列中的數值範圍分為三部分,並返回每個半開區間中的數值計數。
示例程式碼:在 Series.value_counts()
方法中設定 dropna=False
為 NaN
計數
如果我們在 Series.value_counts()
方法中設定 dropna=False
,我們也會得到 NaN
值的計數。
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
counts=df["Y"].value_counts(dropna=False)
print("Frequencies:")
print(counts)
輸出:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Frequencies:
NaN 2
3.0 1
8.0 1
4.0 1
Name: Y, dtype: int64
它給出了 DataFrame
中 Y
列中每個元素的數量與 NaN
值的數量。
作者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn