pandas cut函数用法
时间: 2023-07-27 12:07:42 浏览: 187
在 Pandas 中,cut() 函数用于将一组数值数据分成多个离散的区间(bins),并将每个数据点分配到对应的区间中。cut() 函数的基本语法如下:
```python
pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise')
```
其中,各参数的含义如下:
- x:要进行划分的一维数组或 Series 对象。
- bins:用于划分的区间列表或整数,表示将数据分为几个区间。如果 bins 是一个整数,则表示将数据均匀分为 bins 个区间。
- right:布尔值,表示区间是否包含右端点。默认为 True,即包含右端点。
- labels:用于替换区间的标签,必须是与 bins 长度相同的列表或数组。如果未指定,则默认使用区间的整数编码。
- retbins:布尔值,表示是否返回区间的左右端点。默认为 False,即不返回区间端点。
- precision:整数,表示区间的精度。默认为 3,即小数点后保留 3 位。
- include_lowest:布尔值,表示是否包含最低区间。默认为 False,即不包含最低区间。
- duplicates:字符串,表示如何处理重复的区间。默认为 'raise',即抛出异常,也可以设置为 'drop' 或 'raise'。
例如,假设我们有一个包含 10 个数值的 Series 对象:
```python
import pandas as pd
data = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
```
我们可以使用 cut() 函数将这些数据分成 3 个区间:
```python
bins = [0, 5, 8, 10]
labels = ['low', 'medium', 'high']
cuts = pd.cut(data, bins=bins, labels=labels)
print(cuts)
```
输出结果如下:
```
0 low
1 low
2 low
3 low
4 low
5 medium
6 medium
7 medium
8 high
9 high
dtype: category
Categories (3, object): ['low' < 'medium' < 'high']
```
可以看到,cut() 函数返回一个 Categorical 类型的对象,其中每个数值被分配到了对应的区间中,并用指定的标签进行了替换。
阅读全文