假设我有一群人和公司的数据框,他们与之关联:
Id|Name |Company |Type
1 |Hanzo |Bank of America|Bank
2 |Bertha|Disney |Entertainment
3 |Bob |Swiss Bank |Bank
现在我想添加一个公司类型的新列,它们属于:
for i in range(len(dataset)):
if dataset[['Company'].str.contains('BANK')][i]:
dataset['Type'] = 'Bank'
else:
dataset['Type'] = 'Unknown'
如何浏览数据框,过滤公司列并将值提取到新列中?像这样:
background
答案 0 :(得分:2)
如果需要处理2个或更多条件,请使用numpy.select
:
#mask for Entertainment type
ent_companies = ['Disney', ...]
mask1 = dataset['Company'].isin(ent_companies)
#mask for Bank type
mask2 = dataset['Company'].str.contains('BANK', case=False)
dataset['type'] = np.select([mask1, mask2], ['Entertainment', 'Bank'],default='Unknown')
对于过程一条件,只有numpy.where
更好:
dataset['type'] = np.where(mask1, 'Bank', 'No bank')