创建一列来对Python中的数值进行分类

Create a column to categorize numerical values in python(创建一列来对Python中的数值进行分类)
本文介绍了创建一列来对Python中的数值进行分类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个名为df的pythonDataFrame,它将客户的BMI作为数字包含在一个名为‘BMI’的列中。我想在数据框中添加一个名为‘BMI_CAT’的新列,它是基于数值的BMI类别(即:<;18.5表示体重不足,18.5到24.9表示健康,依此类推)。

这就是我尝试的方法,但不起作用。它不喜欢使用"for"。

df['bmi_cat'] = for i in df['bmi'] :
                if i < 18.5 :
                    df['bmi_cat'] == 'underweight'
                elif i >= 18.5 and i < 25 :
                    df['bmi_cat'] == 'healthy'
                elif i >= 25 and i < 30 :
                    df['bmi_cat'] == 'overweight'
                else :
                    df['bmi_cat'] == 'obese'

我正在学习python……如果您能提供任何帮助,我将不胜感激!

推荐答案

您有一个条件列表和相应值可供选择,以便您可以使用np.select

import numpy as np

bmi = df["bmi"]

cond_list = [bmi < 18.5, bmi < 25, bmi < 30, bmi >= 30]
choice_list = ["underweight", "healthy", "overweight", "obese"]

df["bmi_cat"] = np.select(cond_list, choice_list)

它从左到右检查cond_list中的条件,只要找到匹配项,就在choice_list中查找并分配该值。

这篇关于创建一列来对Python中的数值进行分类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)