📜  计算 Pandas DataFrame 中项集的频率

📅  最后修改于: 2022-05-13 01:55:52.281000             🧑  作者: Mango

计算 Pandas DataFrame 中项集的频率

在本文中,我们将解释如何计算 Pandas 中给定 DataFrame 中项集的频率。使用 count()、size() 方法、Series.value_counts() 和 pandas.Index.value_counts() 方法,我们可以计算给定 DataFrame 中项集的频率数。在这里,我们将解释如何在实践中使用这些功能的几个示例。

原始数据:

示例 1:

使用Series.value_counts():此方法适用于 pandas.Series 对象。由于每个 DataFrame 对象都是 Series 对象的集合,因此我们可以应用此方法来获取一列中值的频率计数。



Python3
import pandas as pd
  
df = pd.DataFrame({
    'A': ['Box', 'Color', 'Pencil', 'Eraser', 
          'Color', 'Pencil', 'Eraser', 'Color', 
          'Color', 'Eraser', 'Eraser', 'Pencil'],
  
    'B': ['Jammu', 'Kolkata', 'Bihar', 'Gujrat',
          'Kolkata', 'Bihar', 'Jammu', 'Bihar',
          'Gujrat', 'Jammu', 'Kolkata', 'Bihar']
})
  
count = df['A'].value_counts()
display(count)
  
count = df['B'].value_counts()
display(count)


Python3
import pandas as pd
  
df = pd.DataFrame({
    'A': ['Box', 'Color', 'Pencil', 'Eraser',
          'Color', 'Pencil', 'Eraser', 'Color',
          'Color', 'Eraser', 'Eraser', 'Pencil'],
  
    'B': ['Jammu', 'Kolkata', 'Bihar', 'Gujrat', 
          'Kolkata', 'Bihar', 'Jammu', 'Bihar',
          'Gujrat', 'Jammu', 'Kolkata', 'Bihar']
})
  
freq = df.groupby(['A']).size()
display(freq)
  
freq = df.groupby(['B']).size()
display(freq)


Python3
import pandas as pd
  
df = pd.DataFrame({
    'A': ['Box', 'Color', 'Pencil', 'Eraser',
          'Color', 'Pencil', 'Eraser', 'Color',
          'Color', 'Eraser', 'Eraser', 'Pencil'],
  
    'B': ['Jammu', 'Kolkata', 'Bihar', 'Gujrat', 
          'Kolkata', 'Bihar', 'Jammu', 'Bihar',
          'Gujrat', 'Jammu', 'Kolkata', 'Bihar']
})
  
  
freq = df.groupby(['A'])['B'].agg('count').reset_index()
display(freq)
  
freq = df.groupby(['B'])['A'].agg('count').reset_index()
display(freq)


Python3
import pandas as pd
  
df = pd.DataFrame({
    'A': ['Box', 'Color', 'Pencil', 'Eraser',
          'Color', 'Pencil', 'Eraser', 'Color',
          'Color', 'Eraser', 'Eraser', 'Pencil'],
  
    'B': ['Jammu', 'Kolkata', 'Bihar', 'Gujrat', 
          'Kolkata', 'Bihar', 'Jammu', 'Bihar',
          'Gujrat', 'Jammu', 'Kolkata', 'Bihar']
})
  
freq = df.groupby(['A']).count()
display(freq)
  
freq = df.groupby(['B']).count()
display(freq)


输出:

示例 2:使用Pandas dataframe.size()

它返回元素的总数,通过将 shape 方法返回的行和列相乘进行比较。

蟒蛇3

import pandas as pd
  
df = pd.DataFrame({
    'A': ['Box', 'Color', 'Pencil', 'Eraser',
          'Color', 'Pencil', 'Eraser', 'Color',
          'Color', 'Eraser', 'Eraser', 'Pencil'],
  
    'B': ['Jammu', 'Kolkata', 'Bihar', 'Gujrat', 
          'Kolkata', 'Bihar', 'Jammu', 'Bihar',
          'Gujrat', 'Jammu', 'Kolkata', 'Bihar']
})
  
freq = df.groupby(['A']).size()
display(freq)
  
freq = df.groupby(['B']).size()
display(freq)

输出:



示例 3:使用Pandas reset_index()

它是一种重置数据帧索引的方法。 reset_index() 方法将范围从 0 到数据长度的整数列表设置为索引。

蟒蛇3

import pandas as pd
  
df = pd.DataFrame({
    'A': ['Box', 'Color', 'Pencil', 'Eraser',
          'Color', 'Pencil', 'Eraser', 'Color',
          'Color', 'Eraser', 'Eraser', 'Pencil'],
  
    'B': ['Jammu', 'Kolkata', 'Bihar', 'Gujrat', 
          'Kolkata', 'Bihar', 'Jammu', 'Bihar',
          'Gujrat', 'Jammu', 'Kolkata', 'Bihar']
})
  
  
freq = df.groupby(['A'])['B'].agg('count').reset_index()
display(freq)
  
freq = df.groupby(['B'])['A'].agg('count').reset_index()
display(freq)

输出:

示例 4:使用Pandas dataframe.count()

它用于计算编号。给定轴上的非 NA/null 观测值。它也适用于非浮动类型的数据。

蟒蛇3

import pandas as pd
  
df = pd.DataFrame({
    'A': ['Box', 'Color', 'Pencil', 'Eraser',
          'Color', 'Pencil', 'Eraser', 'Color',
          'Color', 'Eraser', 'Eraser', 'Pencil'],
  
    'B': ['Jammu', 'Kolkata', 'Bihar', 'Gujrat', 
          'Kolkata', 'Bihar', 'Jammu', 'Bihar',
          'Gujrat', 'Jammu', 'Kolkata', 'Bihar']
})
  
freq = df.groupby(['A']).count()
display(freq)
  
freq = df.groupby(['B']).count()
display(freq)

输出: