如何解决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 举报,一经查实,本站将立刻删除。