在以下数据帧 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/