pandas 2列のデータフレームがあるとします:
_df: Col1 Col2
1 1
1 2
1 2
1 2
3 4
3 4
_
次に、これら2つの列の一意のカップル値(col1、col2)のみを保持し、頻度を指定します。
_df2: Col1 Col2 Freq
1 1 1
1 2 3
3 4 2
_
df['Col1', 'Col2'].value_counts()
を使用すると思いますが、1列のみで機能します。多くの列を処理する関数が存在しますか?
groupby
+ size
+ Series.reset_index
:
df = df.groupby(['Col1', 'Col2']).size().reset_index(name='Freq')
print (df)
Col1 Col2 Freq
0 1 1 1
1 1 2 3
2 3 4 2
試すことができます
df.groupby(['Col1', 'Col2']).size()
jezの答えと比較して異なる視覚的出力のために、あなたはそのソリューションを拡張することができます
pd.DataFrame(df.groupby(['Col1', 'Col2']).size().rename('Freq'))
与える
Freq
Col1 Col2
1 1 1
2 3
3 4 2