我正在尝试将数据帧中的列转换为数字。输入是从电子邮件地址提取的电子邮件域。样品:
>>> data['emailDomain']
0 [gmail]
1 [gmail]
2 [gmail]
3 [aol]
4 [yahoo]
5 [yahoo]
我想创建一个新列,如果域是gmail
或aol
,则列条目将是1
,否则为0
。
我创建了一个方法,如下所示:
用起来像:
data['validEmailDomain'] = data.apply(convertToNumber, axis=1)
然而,我的输出列是0
,即使我知道输入列中有gmail和aol电子邮件。
知道会出什么问题吗?在
另外,我认为使用条件语句可能不是解决这个问题的最有效方法。有没有其他方法来完成这个任务?在
您可以通过列表理解总结每个提供程序的发生检查,并将结果列表写入
data['validEmailDomain']
:您可以使用^{}
正在搜索提供程序
与对每行中的每个电子邮件应用} 方法一次对一个列执行该操作
^{pr2}$re
不同,您可以使用^{所以就变成这样:
^{4}$如果您真的想要
0
s和1
s,可以添加.astype(int)
如果你的系列包含字符串,你的代码就可以工作了。因此,它们可能包含列表,在这种情况下,您需要提取第一个元素。在
我还将使用
pd.Series.map
,而不是使用任何行逻辑。下面是一个完整的例子:相关问题 更多 >
编程相关推荐