擅长:python、mysql、java
<p>没有数据集的确切内容很难回答,但我可以看出一个错误。根据你的描述,看来你看错了。你希望其中一个词出现在你的公司描述中,所以应该是这样的:</p>
<pre><code>if any(test in company for test in ['Eye', 'glasses', 'opthal', 'spectacles', 'optometers'])
</code></pre>
<p>但是,您可能会遇到案例问题,因此我建议:</p>
<pre><code>company = row['SIC_Desc'].lower()
if any(test.lower() in company for test in ['Eye', 'glasses', 'opthal', 'spectacles', 'optometers']):
return 'Eyewear'
</code></pre>
<p>您还需要确保company是一个字符串,'SIC_Desc'是一个正确的列名。你知道吗</p>
<p>最终,您的函数将如下所示:</p>
<pre><code>def is_match(company,names):
return any(name in company for name in names)
def map_company(row):
company = row['SIC_Desc'].lower()
if 'surgical' in company:
return 'Surgical'
elif is_match(company,['eye','glasses','opthal','spectacles','optometers']):
return 'Eyewear'
elif is_match(company,['cotton', 'bandages', 'gauze', 'tape']):
return 'First Aid'
else:
return 'Other'
</code></pre>