在Pandas数据框架中获取一个列的频率计数

在Pandas数据框架中获取一个列的频率计数

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

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

这个方法适用于pandas.Series对象。由于每个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)

输出:

在Pandas数据框架中获取一个列的频率计数

方法#2:使用GroupBy.count()。

这个方法可以用来计算单列上对象的频率。在对一个列的DataFrame对象进行分组后,我们可以对产生的groupby对象应用count()方法,得到一个包含频率计数的DataFrame对象。

# 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)

输出:
在Pandas数据框架中获取一个列的频率计数

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

这个方法可以用来计算单个或多个列的对象的频率。在对一个或多个列的DataFrame对象进行分组后,我们可以对产生的groupby对象应用size()方法,得到一个包含频率计数的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'] })
  
# Multi-column frequency count
count = df.groupby(['A', 'B']).size()
print(count)

输出:
在Pandas数据框架中获取一个列的频率计数

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程