微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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','cherries']:
       df['item_type']=='fruit'
   else:
       df['item_type']=='meat'

df = df.apply(item_type)

解决方法

使用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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。