データサイエンティストは通常、ほとんどの時間をデータの調査と前処理に費やしています。Pandas value_counts()は、データ分析とデータ構造の理解に関して最も人気のある関数の1つです。この関数は、一意の値のカウントを含むシリーズを返します。結果のシリーズは、パラメーターによって制御されるNAを含め、または除外して、降順または昇順で並べ替えることができます。
この記事では、Pandas value_counts()のさまざまなユースケースについて説明します。次の一般的なタスクを処理するためにそれを使用する方法。この記事が気に入ったら、ブックマークしたり、フォローしたり、いいねをしたりすることを忘れないでください。
1.デフォルトのパラメータ
2.結果を昇順で並べ替えます
3.結果をアルファベット順に並べます
4.結果にはnull値が含まれます
5.結果をパーセンテージカウントとして表示します
6.連続データを離散間隔に分割します
7. value_counts()をグループ化して呼び出します
8.結果のシリーズをDataFrameに変換します
9.DataFrameに適用します
おすすめ記事
1.デフォルトのパラメータ
Pandas value_counts()関数は、一意の値のカウントを含むシリーズを返します。デフォルトでは、結果の系列は降順でソートされ、NA値は含まれていません。たとえば、Titanicデータセットから「Embarked」列のカウントを取得しましょう。
>>> df['Embarked'].value_counts()
S 644
C 168
Q 77
Name: Embarked, dtype: int64
2.結果を昇順で並べ替えます
value_count()によって返される系列は、デフォルトで降順でソートされます。昇順の結果の場合、パラメーターascendingをTrueに設定できます。
>>> df['Embarked'].value_counts(ascending=True)
Q 77
C 168
S 644
Name: Embarked, dtype: int64
3.結果をアルファベット順に並べます
値カウントASCまたはDESCでソートされた結果を取得するために、パラメーターの昇順を既に学習しました。結果をアルファベット順に表示した方がよい場合もあります。これは、value_counts()の後にsort_index(ascending = True)を呼び出すことで実行できます。
>>> df['Embarked'].value_counts(ascending=True).sort_index(ascending=True)
C 168
Q 77
S 644
Name: Embarked, dtype: int64
4.結果にNAを含めます
デフォルトでは、NA値を含む行は結果で無視されます。それを設定するためのパラメータdropnaがあります。この値をFalseに設定して、NAの行数を含めることができます。
df['Embarked'].value_counts(dropna=False)
S 644
C 168
Q 77
NaN 2
Name: Embarked, dtype: int64
5.結果をパーセンテージカウントとして表示します
探索的データ分析を行う場合、一意の値のパーセント数を確認する方が便利な場合があります。これは、パラメータnormalizeをTrueに設定することで実行できます。次に例を示します。
df['Embarked'].value_counts(normalize=True)
S 0.724409
C 0.188976
Q 0.086614
Name: Embarked, dtype: float64
結果をパーセント記号(%)でフォーマットする場合は、パンダの表示オプションを次のように設定できます。
>>> pd.set_option('display.float_format', '{:.2f}%'.format)
>>> df['Embarked'].value_counts(normalize = True)
S 0.72%
C 0.19%
Q 0.09%
Name: Embarked, dtype: float64
6.連続データを離散間隔に分割します
パンダvalue_counts()は、binパラメーターを使用して連続データを離散間隔に分割するために使用できます。Pandasのcut()関数と同様に、整数またはリストをbinパラメーターに渡すことができます。
整数がビンに渡されると、関数は連続値を同じサイズのビンに離散化します。例:
>>> df['Fare'].value_counts(bins=3)
(-0.513, 170.776] 871
(170.776, 341.553] 17
(341.553, 512.329] 3
Name: Fare, dtype: int64
リストがbinに渡されると、関数は連続する値をカスタムグループに分割します(例:
>>> df['Fare'].value_counts(bins=[-1, 20, 100, 550])
(-1.001, 20.0] 515
(20.0, 100.0] 323
(100.0, 550.0] 53
Name: Fare, dtype: int64
7. value_counts()をグループ化して実行します
Pandas groupby()を使用すると、データをさまざまなグループに分けて計算を実行し、より適切な分析を行うことができます。一般的なユースケースは、特定の列でグループ化してから、別の列の一意の値のカウントを取得することです。たとえば、「Embarked」列でグループ化して、個別の「Sex」値の数を取得しましょう。
>>> df.groupby('Embarked')['Sex'].value_counts()
Embarked Sex
C male 95
female 73
Q male 41
female 36
S male 441
female 203
Name: Sex, dtype: int64
8.結果のシリーズをDataFrameに変換します
Pandas value_counts()は、MultiIndexを使用した前の例を含むSeriesを返します。結果をDataFrameとして表示する場合は、value_count()の後にto_frame()を呼び出すことができます。
y('Embarked')['Sex'].value_counts().to_frame()
9.DataFrameに適用します
これまで、value_counts()をPandas Seriesに適用してきましたが、PandasDataFrameには同等のメソッドがあります。Pandas DataFrame.value_counts()は、DataFrame内の一意の行の数を含むシリーズを返します。
それをよりよく理解するために例を見てみましょう:
df = pd.DataFrame({
'num_legs': [2, 4, 4, 6],
'num_wings': [2, 0, 0, 0]},
index=['falcon', 'dog', 'cat', 'ant']
)
>>> df.value_counts()
num_legs num_wings
4 0 2
6 0 1
2 2 1
dtype: int64
dfでvalue_counts()を呼び出すことにより、num_legsとnum_wingsでインデックス付けされたMultiIndexシリーズを返します。結果から、num_legs=4とnum_wing=0の2つのレコードがあることがわかります。
同様に、to_frame()を呼び出して、結果をDataFrameに変換できます。
>>> df.value_counts().to_frame()
要約する
この記事では、Pandas value_counts()のさまざまなユースケースについて説明しました。この記事がパンダの学習時間を節約するのに役立つことを願っています。value_counts()APIのドキュメントを参照して、他にできることについて学ぶことをお勧めします。
テクノロジーエクスチェンジ
転載、収集、いいね、サポートへようこそ!
現在、技術交流グループが開設されており、2,000人以上のメンバーがいます。追加する際のコメントとしては、情報源+興味の方向性が最適です。これは、志を同じくする友人を見つけるのに便利です。
- 方法1.次の画像をWeChatに送信し、長押しして識別し、バックグラウンドで返信します。グループを追加します。
- 方法②、マイクロ信号を追加:dkl88191、注:CSDNから
- 方法③、WeChat検索パブリックアカウント:Python学習とデータマイニング、バックグラウンド応答:グループを追加