Python pandas 实现条件类别

标签 python conditional-statements categories

在以下数据帧 df 中:

Type  Description Counts
A        blue      34645
A        red       45765
B        red       36587
C        green     42653

我想实现一个类别层次结构,但仅限于 A 类。

我正在使用此代码:

category_hierarchy={
'blue':'in progress',
'red':'review'}

df['Category_Hierachy'] = df['Description'].replace(category_hierarchy)

但是,这会产生以下结果:

Type  Description Counts  Category_Hierachy
A        blue      34645    in progress
A        red       45765    review
B        red       36587    review
C       green      42653    green

而不是

Type  Description Counts  Category_Hierachy
A        blue      34645    in progress
A        red       45765    review
B        red       36587    
C       green      42653    

如何将我的代码仅应用于类型 A 的行?

谢谢

最佳答案

使用应用

def custom_apply(row):

    if row['Type'] == 'A':

        return category_hierarchy[row['Description']]

    return ''

df['Category_Hierachy'] = df.apply(custom_apply, 1)

使用isin

idx = df['Type'].isin(['B', 'C'])
df.ix[idx, "Category_Hierachy"] = ""

关于Python pandas 实现条件类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44057325/

相关文章:

python - 为 Wagtail 问题提供引导轮播

python - 在 Maya python 中将文件应用为纹理

python - 计算数组列表的概率时出错

java - 如何进行这种组合?

python-3.x - 如何根据条件(特定列的相同值)从其他数据框中复制值?

php - 如何从 WordPress 获取所有基本(父或根)类别

python - 在 Pycharm 上通过 docker-compose 运行 Python 控制台

java - 三元条件表达式中出现奇怪的 NullPointerException

pandas - 在 Pandas 中将多个类别合二为一

java - log4j 可加性、类别日志记录级别和 appender 阈值