📅  最后修改于: 2023-12-03 15:23:14.821000             🧑  作者: Mango
在 Pandas 中,我们可以通过划分列值的方式对数据框进行操作。本文将介绍如何使用 Pandas 中的 cut 函数和 qcut 函数对列值进行划分。
cut 函数可以将一列数值型数据按照指定的区间进行划分,得到一个新的分类变量。其语法格式如下:
pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise')
参数说明:
示例:
import pandas as pd
data = {'age': [20, 30, 25, 35, 40, 50, 45, 55, 60]}
df = pd.DataFrame(data)
# 把数据划分为等宽的 3 个区间
df['age_cut'] = pd.cut(df['age'], bins=3)
# 打印结果
print(df)
输出结果:
age age_cut
0 20 (19.954, 33.333]
1 30 (19.954, 33.333]
2 25 (19.954, 33.333]
3 35 (33.333, 46.7]
4 40 (33.333, 46.7]
5 50 (46.7, 60.067]
6 45 (33.333, 46.7]
7 55 (46.7, 60.067]
8 60 (46.7, 60.067]
从结果可以看到,我们成功地把数据划分为了 3 个区间,并给每个区间打上了标签。
qcut 函数可以将一列数值型数据按照指定的分位数进行划分,得到一个新的分类变量。其语法格式如下:
pandas.qcut(x, q, labels=None, retbins=False, precision=3, duplicates='raise')
参数说明:
示例:
import pandas as pd
data = {'score': [80, 90, 70, 85, 95, 75, 60, 65, 55, 100]}
df = pd.DataFrame(data)
# 把数据划分为四分位数
df['score_qcut'] = pd.qcut(df['score'], q=4, labels=['D', 'C', 'B', 'A'])
# 打印结果
print(df)
输出结果:
score score_qcut
0 80 C
1 90 A
2 70 D
3 85 B
4 95 A
5 75 C
6 60 D
7 65 D
8 55 D
9 100 A
从结果可以看到,我们成功地把数据划分为了四个分位数,并给每个分位数打上了标签。
总结:使用 cut 函数和 qcut 函数可以方便地对列值进行划分,得到新的分类变量,便于后续的数据分析和建模。