数据挖掘是机器学习领域的重要部分。在选择和训练合适的模型之前,我们需要对数据有一个全面的理解。Pandas库提供了许多有用的函数,其中value_counts()
是一个特别有用的工具,它可以帮助我们了解数据集中各项的数量。尽管在大多数情况下,默认参数已经足够使用,但通过自定义参数,我们可以实现更多功能。
value_counts()
方法返回一个包含每个值数量的序列。简单来说,对于数据框中的任何列,value_counts()
方法会返回该列每个项目的计数。
python
Series.value_counts()
| 参数名 | 描述 | |----------|----------------------------------------------------| | normalize | 返回对象是否包含各个值的相对频率 | | bins | 将连续数据分组到离散区间 | | dropna | 是否排除缺失值 | | ascending | 排序方式,True表示升序,False表示降序 |
本文作者使用了泰坦尼克号数据集来演示value_counts()
的基本用法。为了更好地理解数据集,我们首先导入必要的库和数据集。
```python
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline
train = pd.read_csv('../input/titanic/train.csv') ```
接下来,查看数据集的前几行:
```python
train.head() ```
然后,统计有效值的数量:
```python
train.isnull().sum() ```
通过这些分析,我们对数据集有了初步的了解。现在,我们将使用value_counts()
对数据集进行更深入的探索。
首先,在数据集的“Embarked”列上使用value_counts()
方法,统计每个值的数量。
```python
train['Embarked'].value_counts() ```
结果显示,“S”代表南安普敦出发的人最多,其次是“C”代表瑟堡和“Q”代表昆士敦。
有时,百分比比单纯的计数更能体现数量之间的相对关系。当设置normalize=True
时,返回的对象将包含各个值的相对频率。
```python
train['Embarked'].value_counts(normalize=True) ```
结果显示,72%的人从南安普敦出发,这比单纯知道644个人从南安普敦出发更为直观。
默认情况下,value_counts()
返回的序列是降序排列的。我们可以通过设置ascending=True
将其变为升序。
```python
train['Embarked'].value_counts(ascending=True) ```
结果显示,按升序排列后,昆士敦的数量最少。
默认情况下,value_counts()
不会计算缺失值。但通过设置dropna=False
,我们可以计算缺失值的数量。
```python
train['Embarked'].value_counts(dropna=False) ```
结果显示,该列中有2个缺失值。
value_counts()
还支持将连续数据放入离散区间。这在处理数值型数据时非常有用。例如,将票价(Fare)列的数据分为不同的区间。
```python
train['Fare'].value_counts(bins=7) ```
结果显示,大多数人支付的票价低于73.19。此外,我们还可以发现,有五个区间是我们需要关注的,而最后两个区间则没有乘客。
通过以上方法,我们可以更好地理解和分析数据集,从而为后续的数据分析和建模提供有力的支持。