gpt4 book ai didi

python - 如何通过 Pandas 中的等效分区将连续值转换为离散值

转载 作者:太空宇宙 更新时间:2023-11-04 07:14:32 28 4
gpt4 key购买 nike

我想通过等效分区将数据框列的连续值转换为离散值。例如,以下是我的输入

我想将 a 列中的连续值分成 3 个区间。

输入:

import pandas as pd 
import numpy as np
df = pd.DataFrame({'a':[1.1, 1.2, 1.3, 2.4, 2.5, 4.1]})

输出:

     a
0 1.1
1 1.2
2 1.3
3 2.4
4 2.5
5 4.1

a列中,最小值是1.1,最大值是4.1,我想把它分成3个区间

如您所见,每个区间的大小等于 (4.1-1.1)/3 = 1.0。因此,我可以将 [1.1, 2.1) 区间内的所有值(大于或等于 1.1 且小于 2.1 )视为 0[2.1, 3.1)区间内的所有值为1[3.1)区间内的所有值, 4.1] 作为 2

这是我的预期结果。

预期:

   a
0 0
1 0
2 0
3 1
4 1
5 2

最佳答案

您可以使用 pd.cut参数 right = False 为:

pd.cut(df.a, bins=3, labels=np.arange(3), right=False)

0 0
1 0
2 0
3 1
4 1
5 2
Name: a, dtype: category
Categories (3, int64): [0 < 1 < 2]

分箱是如何完成的:

pd.cut(df.a, bins=3, right=False)

0 [1.1, 2.1)
1 [1.1, 2.1)
2 [1.1, 2.1)
3 [2.1, 3.1)
4 [2.1, 3.1)
5 [3.1, 4.103)
Name: a, dtype: category
Categories (3, interval[float64]): [[1.1, 2.1) < [2.1, 3.1) < [3.1, 4.103)]

关于python - 如何通过 Pandas 中的等效分区将连续值转换为离散值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53028081/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com