gpt4 book ai didi

python - 在为 DataFrame 系列创建类别时如何从 QCUT 中获取整数

转载 作者:行者123 更新时间:2023-12-02 08:31:52 25 4
gpt4 key购买 nike

有两个 ndarray:

import pandas as pd
import numpy as np

a = np.arange(0,100, 10)
b = np.random.random_integers(low=9000, high=10000, size=(1000,))

我继续创建 DataFrame:

numbers =  np.concatenate((a, b), axis=0)
df = pd.DataFrame({'a':numbers})

由于大多数数字值(1000 个数字)都在 9,000 到 10,000 之间,只有 10 个数字在 1 到 100 之间,所以我使用 qcut() 方法来获取按每个范围内的数字百分比逻辑间隔的类别:

df['cats'] = pd.qcut(df.a, 10)
print pd.value_counts(df['cats'])

打印出:

[0, 9103]           102
(9630.4, 9717] 102
(9407, 9519] 102
(9307.4, 9407] 102
(9895.3, 10000] 101
(9717, 9810] 101
(9203.6, 9307.4] 101
(9810, 9895.3] 100
(9103, 9203.6] 100
(9519, 9630.4] 99
Name: cats, dtype: int64

我希望我能得到整数,例如 1, 2, 3, 4, 5,而不是 qcut 生成的“(9103, 9203.6]”、“(9519, 9630.4]”标签,6 ,7 ,8 ,9 等等?

最佳答案

使用labels=np.arange(10) + 1

df['cats'] = pd.qcut(df.a, 10, labels=np.arange(10) + 1)
print pd.value_counts(df['cats'])

1 103
3 102
10 101
9 101
8 101
7 101
6 101
4 101
5 100
2 99
Name: cats, dtype: int64

关于python - 在为 DataFrame 系列创建类别时如何从 QCUT 中获取整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40245397/

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