无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

(pd.cut) 详解pandas.cut()(将数值分段)函数使用方法 Pandas.cut() 函数:将连续数值数据分割成离散区间 全网首发(图文详解1)

前沿技术 Micheal 4个月前 (06-01) 102次浏览 已收录 扫描二维码

(pd.cut) 详解pandas.cut()(将数值分段)函数使用方法

pandas.cut()是Pandas库中用来将连续数值数据分割成离散区间的函数。你可以指定分割的方式:通过设定分割的数量或直接定义区间边界。

这里我给你一个pandas.cut的基本示例:

import pandas as pd

# 演示数据
data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 将数据分割成4个区间
bins = pd.cut(data, bins=4)

print(bins)
print(bins.categories)

在这个例子中,我们有一个从0到9的数字列表。我们使用pd.cut将这个列表分割成4个区间。在输出中,你可以看到分配给每个数据点的区间以及区间的范围。

如果你想要自定义区间的边界,可以这么做:

import pandas as pd

# 演示数据
data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 定义区间边界
bins = [0, 2, 4, 6, 8, 10]
# 将数据分割到这些自定义的区间
categories = pd.cut(data, bins=bins)

print(categories)
print(categories.categories)

在这个例子中,bins是一个包含区间边界的列表,pd.cut函数根据这些边界将数据分割开。注意这里边界是左开右闭的,即第一个区间表示的是(0, 2]。

pandas.cut还有一些其他有用的参数:

  • right:布尔值,表示区间是左开右闭(True,缺省值)还是左闭右开(False)。
  • labels:用于标记返回的区间的字符串列表或布尔值False。
  • retbins:布尔值,若为True,则同时返回分割的边界值。
import pandas as pd

# 演示数据
data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 自定义标签
labels = ['小', '中', '大', '很大']
# 切分数据并赋予标签
categories, bin_edges = pd.cut(data, 4, labels=labels, retbins=True)

print(categories)
print(bin_edges)

在这个例子中,我们除了分割数据外,还给每个分割的区间赋了一个标签。通过retbins参数我们也获取了每个区间的边界值。这在你需要知道每个标签具体代表的数值范围时非常有用。

当你在实际情况中使用pandas.cut时,你的数据很可能来自于一个DataFrame,你可能需要将分割后的结果作为新的列加入到DataFrame中去。

import pandas as pd

# 创建DataFrame
df = pd.DataFrame({'data': [0, 1, 5, 9, 10, 15, 20, 25]})
# 自定义分区边界
bins = [0, 5, 10, 20, 30]
# 切分数据
df['category'] = pd.cut(df['data'], bins=bins)

print(df)

在这个DataFrame的例子中,我们基于原来的数值列创建了一个新的类别列,它根据我们所指定的边界来将数据分类。

以上就是pandas.cut的基本使用方法和示例代码。根据你的具体需求,你可以调整binslabels等参数来实现更复杂的数据分割功能。
(destination host unreachable) Linux报 “host unreachable” 异常的原因以及解决办法 host unreachable异常解决步骤 全网首发(图文详解1)
(序列一) Python 序列详解(含索引、切片) Python 序列基本数据结构 全网首发(图文详解1)

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝