pandas cut 函数
pandas.cut()
函数可以将给定的数据分布到范围内,范围也可称为 bins
。
在本文中我们将使用下面的 dataframe。
import pandas as pd
df = pd.dataframe(
{
"name": ["anish", "birat", "chirag", "kabin", "sachin"],
"age": [23, 34, 38, 45, 27],
"score": [316, 322, 332, 330, 325],
}
)
print(df)
输出:
name age score
0 anish 23 316
1 birat 34 322
2 chirag 38 332
3 kabin 45 330
4 sachin 27 325
pandas.cut()
函数语法
pandas.cut(
x,
bins,
right=true,
labels=none,
retbins=false,
precision=3,
include_lowest=false,
duplicates="raise",
ordered=true,
)
参数
x |
给定数组 |
bins |
数据分类的标准 |
right |
布尔型。如果为 true,也包括 bins 最右边的数字。 |
labels |
数组。bins 的标签。 |
retbins |
布尔型。如果是 true ,则返回 bins 。 |
precision |
整数型。储存和展示 bins 的精度 |
ordered |
布尔型。如果为 true ,则将对结果的标签进行排序。 |
返回值
它返回一个数组,数组代表了 x
中每个元素的 bin
值,如果我们设置了 retbins=true
,它也会返回 bins
。
示例:使用 pandas.cut()
方法将 dataframe 的列值分布到 bin 中去
import pandas as pd
df = pd.dataframe(
{
"name": ["anish", "birat", "chirag", "kabin", "sachin"],
"age": [23, 34, 38, 45, 27],
"score": [316, 322, 332, 330, 325],
}
)
print("initial dataframe:")
print(df, "\n")
df["age-range"] = pd.cut(x=df["age"], bins=[20, 30, 40, 50])
print("dataframe with age-range:")
print(df)
输出:
initial dataframe:
name age score
0 anish 23 316
1 birat 34 322
2 chirag 38 332
3 kabin 45 330
4 sachin 27 325
dataframe with age-range:
name age score age-range
0 anish 23 316 (20, 30]
1 birat 34 322 (30, 40]
2 chirag 38 332 (30, 40]
3 kabin 45 330 (40, 50]
4 sachin 27 325 (20, 30]
它将 dataframe df
中 age
列的值划分为使用 pandas.cut()
方法中 bins
参数值计算的年龄范围,最后显示 dataframe 中每行的 age-range
值。
这里,(20,30]
表示从 20 到 30 的值,不包括 20,包括 30。
示例:使用 pandas.cut()
方法将数值分布到不同的区域,并为每个区域分配一个标签
默认情况下,分配给每个 bin 的标签将是 bin 的范围。我们可以使用 pandas.cut()
函数中的 labels
参数来设置自定义 bin 标签。
import pandas as pd
df = pd.dataframe(
{
"name": ["anish", "birat", "chirag", "kabin", "sachin"],
"age": [23, 34, 38, 45, 27],
"score": [316, 322, 332, 330, 325],
}
)
print("initial dataframe:")
print(df, "\n")
bin_labels = labels = ["21 to 30", "31 to 40", "41 to 50"]
df["age-range"] = pd.cut(x=df["age"], bins=[20, 30, 40, 50], labels=bin_labels)
print("dataframe with age-range:")
print(df)
输出:
initial dataframe:
name age score
0 anish 23 316
1 birat 34 322
2 chirag 38 332
3 kabin 45 330
4 sachin 27 325
dataframe with age-range:
name age score age-range
0 anish 23 316 21 to 30
1 birat 34 322 31 to 40
2 chirag 38 332 31 to 40
3 kabin 45 330 41 to 50
4 sachin 27 325 21 to 30
它将 age
列的每个值分配到不同的 bin 中,并为每个 bin 添加一个标签。
示例:在 pandas.cut()
方法中设置 retbins=true
来返回 bin 值
import pandas as pd
df = pd.dataframe(
{
"name": ["anish", "birat", "chirag", "kabin", "sachin"],
"age": [23, 34, 38, 45, 27],
"score": [316, 322, 332, 330, 325],
}
)
print("initial dataframe:")
print(df, "\n")
bin_labels = labels = ["21 to 30", "31 to 40", "41 to 50"]
df["age-range"], bin_values = pd.cut(
x=df["age"], bins=[20, 30, 40, 50], labels=bin_labels, retbins=true
)
print("dataframe with age-range:")
print(df, "\n")
print("the bin values are:")
print(bin_values)
输出:
initial dataframe:
name age score
0 anish 23 316
1 birat 34 322
2 chirag 38 332
3 kabin 45 330
4 sachin 27 325
dataframe with age-range:
name age score age-range
0 anish 23 316 21 to 30
1 birat 34 322 31 to 40
2 chirag 38 332 31 to 40
3 kabin 45 330 41 to 50
4 sachin 27 325 21 to 30
the bin values are:
[20 30 40 50]
它显示带有 age-range
值的 dataframe 和 bin 值。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
pandas dataframe dataframe.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:python
-
dataframe.shift() 函数是将 dataframe 的索引按指定的周期数进行移位。
python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:python
-
python pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:python
-
pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。
pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:python
-
本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。
pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:python
-
本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。
在 python 中将 pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:python
-
了解如何在 python 中将 pandas 系列日期时间转换为字符串