pandas cut 函数-ag捕鱼王app官网

pandas cut 函数

作者:迹忆客 最近更新:2024/04/21 浏览次数:

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 dfage 列的值划分为使用 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 值。

上一篇:pandas apply, map 和 applymap 的区别

下一篇:

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:python

pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。

pandas 追加数据到 csv 中

发布时间:2024/04/24 浏览次数:352 分类:python

本教程演示了如何在追加模式下使用 to_csv()向现有的 csv 文件添加数据。

pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:python

本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。

pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:python

本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便
网站地图