Pandas value_counts()中提取值

Pandas value_counts()中提取值

在本文中,我们将介绍如何从Pandas value_counts()方法中提取值。value_counts()是Pandas中一个非常有用的方法,可以用于统计某一列中每个值的出现次数。例如,我们有一个名为“fruits”的列,其中包含苹果、香蕉、梨等多种水果,我们可以使用value_counts()方法来获取每个水果出现的次数。

import pandas as pd

df = pd.DataFrame({'fruits': ['apple', 'banana', 'pear', 'apple', 'pear', 'pear']})
counts = df['fruits'].value_counts()

print(counts)
Python

输出结果如下:

pear      3
apple     2
banana    1
Name: fruits, dtype: int64
Python

可以看出,“pear”出现了3次,“apple”出现了2次,“banana”出现了1次。但是有时候,我们需要从value_counts()方法中提取这些值,以便进行进一步的分析。

阅读更多:Pandas 教程

使用index属性提取值

最简单的方法是通过value_counts()方法返回的Series对象的index属性来提取值。如下所示:

import pandas as pd

df = pd.DataFrame({'fruits': ['apple', 'banana', 'pear', 'apple', 'pear', 'pear']})
counts = df['fruits'].value_counts()

values = counts.index

print(values)
Python

输出结果如下:

Index(['pear', 'apple', 'banana'], dtype='object')
Python

可以看出,这个Series对象的index属性是一个包含所有不同值的Index对象,我们可以使用.values属性来将其转换为一个NumPy数组:

import pandas as pd

df = pd.DataFrame({'fruits': ['apple', 'banana', 'pear', 'apple', 'pear', 'pear']})
counts = df['fruits'].value_counts()

values = counts.index.values

print(values)
Python

输出结果如下:

['pear' 'apple' 'banana']
Python

使用to_dict()方法以字典形式提取值

另一种常见的方法是使用to_dict()方法将Series对象转换为一个字典,其中包含每个值及其对应的计数值,如下所示:

import pandas as pd

df = pd.DataFrame({'fruits': ['apple', 'banana', 'pear', 'apple', 'pear', 'pear']})
counts = df['fruits'].value_counts()

values_dict = counts.to_dict()

print(values_dict)
Python

输出结果如下:

{'pear': 3, 'apple': 2, 'banana': 1}
Python

可以看出,这个字典中的键为每个不同的值,而值为其对应的计数。

应用场景

我们可以将这些提取出来的值用于各种分析场景,例如:

  • 找出计数最高的值
  • 删除计数最低的值
  • 将计数最低/最高的几个值替换为“其他(other)”等

下面是一个示例程序,它寻找计数最高的值并打印出来(如果有多个计数最高的值,则打印所有这些值):

import pandas as pd

df = pd.DataFrame({'fruits': ['apple', 'banana', 'pear', 'apple', 'pear', 'pear']})
counts = df['fruits'].value_counts()

max_count = counts.max()
max_values = counts[counts == max_count].index.values

print(f'The maximum count is {max_count}.')
print('The following values have this count:')
for value in max_values:
    print(value)
Python

输出结果如下:

The maximum count is 3.
The following values have this count:
pear
Python

总结

通过本文,我们学习了如何从Pandas value_counts()方法中提取值,并讨论了如何在各种场景中使用这些值进行进一步的分析。希望这篇文章能够对您有所帮助!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册