擅长:python、mysql、java
<p>如果你的系列包含字符串,你的代码就可以工作了。因此,它们可能包含列表,在这种情况下,您需要提取第一个元素。在</p>
<p>我还将使用<code>pd.Series.map</code>,而不是使用任何行逻辑。下面是一个完整的例子:</p>
<pre><code>df = pd.DataFrame({'emailDomain': [['gmail'], ['gmail'], ['gmail'], ['aol'],
['yahoo'], ['yahoo'], ['else']]})
domains = {'gmail', 'aol', 'outlook', 'hotmail', 'yahoo'}
df['validEmailDomain'] = df['emailDomain'].map(lambda x: x[0]).isin(domains)\
.astype(int)
print(df)
# emailDomain validEmailDomain
# 0 [gmail] 1
# 1 [gmail] 1
# 2 [gmail] 1
# 3 [aol] 1
# 4 [yahoo] 1
# 5 [yahoo] 1
# 6 [else] 0
</code></pre>