if语句为字符串变量创建新的列熊猫

时间:2020-09-27 20:52:36

标签: python python-3.x pandas if-statement

使用此数据框,我想基于第一列的值创建另一列。

data = {'item_name':  ['apple', 'banana', 'cherries', 'duck','chicken','pork']}
df = pd.DataFrame (data, columns = ['item_name'])
Expected df:
item_name  item_type
apple      fruit
banana     fruit
cherries   fruit
duck       meat
beef       meat
pork       meat

我尝试过的代码:

def item_type(item_name):
   if df['item_name'] is in ['apple','banana','cherries']:
       df['item_type']=='fruit'
   else:
       df['item_type']=='meat'

df = df.apply(item_type)

1 个答案:

答案 0 :(得分:0)

使用np.where

df['item_type'] = np.where(df['item_name'].isin(['apple','banana','cherries']),
                           'fruit', 'meat')

输出:

  item_name item_type
0     apple     fruit
1    banana     fruit
2  cherries     fruit
3      duck      meat
4   chicken      meat
5      pork      meat