获取熊猫数据框中某列的频率计数

原文:https://www . geeksforgeeks . org/get-frequency-counts-in-pandas-data frame/

给定一个熊猫数据帧,我们需要在这个数据帧的一列或多列中找到每个项目的频率计数。这可以通过多种方式实现:

方法#1: 使用Series.value_counts()

这种方法适用于熊猫。系列对象。由于每个 DataFrame 对象都是 Series 对象的集合,因此我们可以应用此方法来获取一列中值的频率计数。

# importing pandas as pd
import pandas as pd

# sample dataframe
df = pd.DataFrame({'A': ['foo', 'bar', 'g2g', 'g2g', 'g2g',
                         'bar', 'bar', 'foo', 'bar'],
                  'B': ['a', 'b', 'a', 'b', 'b', 'b', 'a', 'a', 'b'] })

# frequency count of column A
count = df['A'].value_counts()
print(count)

输出:

方法 2: 使用GroupBy.count()

此方法可用于计算单个列上对象的频率。将一个数据框对象分组到一列后,我们可以对结果分组对象应用count()方法,以获得包含频率计数的数据框对象。

# importing pandas as pd
import pandas as pd

# sample dataframe
df = pd.DataFrame({ 'A': ['foo', 'bar', 'g2g', 'g2g', 'g2g',
                                'bar', 'bar', 'foo', 'bar'],
                   'B': ['a', 'b', 'a', 'b', 'b', 'b', 'a', 'a', 'b'] })

# Multi-column frequency count
count = df.groupby(['A']).count()
print(count)

输出:

方法#3: 使用GroupBy.size()

此方法可用于计算单列或多列上对象的频率。将一个数据框对象分组到一列或多列后,我们可以对生成的组对象应用size()方法,以获得包含频率计数的序列对象。

# importing pandas as pd
import pandas as pd

# sample dataframe
df = pd.DataFrame({ 'A': ['foo', 'bar', 'g2g', 'g2g', 'g2g', 
                                'bar', 'bar', 'foo', 'bar'],
                   'B': ['a', 'b', 'a', 'b', 'b', 'b', 'a', 'a', 'b'] })

# Multi-column frequency count
count = df.groupby(['A', 'B']).size()
print(count)

输出: