pandas 数据框的两列的唯一值

Unique values of two columns for pandas dataframe

假设我有 pandas 个包含 2 列的数据框:

df: Col1  Col2
      1     1
      1     2
      1     2
      1     2
      3     4
      3     4

然后我只想保留这两列的唯一对值(col1,col2)并给出它们的频率:

df2: Col1  Col2  Freq
      1     1     1
      1     2     3
      3     4     2

我想使用 df['Col1', 'Col2'].value_counts() 但它只适用于一列。 是否存在处理多列的功能?

你可以试试

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

你需要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