熊猫根据条件创建一列

时间:2020-03-07 17:53:18

标签: python pandas

enter image description here

因此,我要添加一个名为'Top Tier'的新列,其中MAKE 'BMW, FORD, BENZ, CHEVROLET'将具有值'Top',而其他MAKE将具有'Not Top' < / p>

df['Top Tier'] = np.where(df['MAKE']==['FORD', 'BMW', 'BENZ' , 'CHEVROLET], 'Top', 'Not Top')

^这不起作用。我想使用np。

2 个答案:

答案 0 :(得分:1)

您可以这样操作:

df['Top Tier'] = df['MAKE'].map(lambda x: 'Top' if x in ['FORD','BMW','BENZ','CHEVROLET'] else 'Not Top')

或者这个:

df['Top Tier'] = df['MAKE'].isin(['FORD','BMW','BENZ','CHEVROLET']).replace({True: 'Top', False: 'Not Top'})

答案 1 :(得分:0)

根据OP的要求,使用np的解决方案:

import pandas as pd
import numpy as np

df = pd.DataFrame({"MAKE": ['FORD', 'BMW', 'BENZ' , 'CHEVROLET', "SOMETHING ELSE"]})
top_tiers = ["FORD", "BMW", "BENZ" , "CHEVROLET"]
df["Top Tier"] = np.where(df['MAKE'].map(lambda x: x in top_tiers), "Top", "Not Top")
df