web-dev-qa-db-ja.com

pandas dataframeの2列の一意の値

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列のみで機能します。多くの列を処理する関数が存在しますか?

12
curious_one

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
22
jezrael

試すことができます

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
3
Quickbeam2k1