gpt4 book ai didi

python - 如何对 Pandas DataFrame 中的一系列值进行分类

转载 作者:太空狗 更新时间:2023-10-30 01:30:53 24 4
gpt4 key购买 nike

假设我有以下 DataFrame:

   Area
0 14.68
1 40.54
2 10.82
3 2.31
4 22.3

我想在范围内对这些值进行分类。比如 A: [1,10], B: [11,20], C...

   Area
0 B
1 D
2 C
3 A
4 C

我怎样才能用 Pandas 做到这一点?我尝试了以下代码:

bins = pd.IntervalIndex.from_tuples([(0, 11), (11, 20), (20, 50), (50, 100), (100, 500), (500, np.max(df["area"]) + 1)], closed='left')
catDf = pd.cut(df["area"], bins = bins)

但是“cut”命令只是将范围值放入 DataFrame 中,我想放入类别名称而不是范围。

编辑:我试图将标签传递给剪辑,但没有任何改变。EDIT2:澄清一下,如果“area”的值有 10.21,那么它在 [10,20] 的范围内,那么它必须被标记为“B”或该值范围的其他标签.

最佳答案

为我工作cat.codes通过将列表 a 转换为 numpy 数组进行索引:

a = list('ABCDEF')
df['new'] = np.array(a)[pd.cut(df["Area"], bins = bins).cat.codes]
print (df)
Area new
0 14.68 B
1 40.54 C
2 10.82 A
3 2.31 A
4 22.30 C
5 600.00 F

catDf = pd.Series(np.array(a)[pd.cut(df["Area"], bins = bins).cat.codes], index=df.index)
print (catDf)
0 B
1 C
2 A
3 A
4 C
5 F
dtype: object

关于python - 如何对 Pandas DataFrame 中的一系列值进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55677210/

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