根据另一列中的值创建新列

发烧友

我正在尝试根据不同列中的值创建新的特征列。所以我有一个带有注释的列,如果它们包含一个 url 地址,我想输出 1 到新列,否则输出 0,所以这将是一个二元特征创建。

Text                                                        Contains_Url

Buy round lot on the open MT @WSJD #AAPL                               1
stock briefly dove 6.4% today. Analysts 
not sure why https://blogs.wsj.com/moneybeat/
2014/12/01/apple-crash-catches-wall-street-off-guard/

@apple Contact sync between Yosemite and iOS8 is                       0
seriously screwed up. It used to be much more stable 
in the past. #icloud #isync

所以会有这样的行,如果它有一个 url,我想在数据框中创建一个新的列,根据文本列 1 或 0。只是为了检查与数据集的其余部分相比带有 url 的推文数量,我做了

data.shape
(3804, 12)
data[data.text.str.contains("http")].shape
(2130, 12)

因此它准确地显示了具有 url 的行数。我的想法是创建一个可以执行此操作的函数,并使用 lambda 应用它

def contains_url(row):
if data[data.text.str.contains("http")]:
    return 1
else:
    return 0

data['contains_url'] = data.apply (lambda row: contains_url(row),axis=1)

ValueError: ('The truth value of a DataFrame is ambiguous. Use a.empty,
a.bool(), a.item(), a.any() or a.all().', 'occurred at index 0')

但是这样做会给我上面的这个错误。任何帮助,将不胜感激。谢谢!

我认为您可以更有效地做到这一点,而无需apply,只需使用由 产生的布尔值str.contains('http'),并将其强制转换为int

data['contains_url'] = data['Text'].str.contains('http').astype(int)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否可以根据值在另一列中更改的时间来创建新列?

根据另一列的值在熊猫中创建新列

根据另一列中的值创建新的r data.table列并进行分组

根据分组按另一列创建最接近值的新列

通过根据条件连接另一列的值来创建新的pyspark DataFrame列

熊猫根据选择为条件的另一列中的值创建一列

添加新列并根据另一列中的值在列中插入值

根据另一列中的字符串值创建新列

根据另一列熊猫的300条相邻行中的值创建新列

根据熊猫中另一列的值创建新列

跟进-根据熊猫中另一列的值创建新列

根据列表中的另一列内容创建新的列值

根据另一列的值创建新列

根据另一列中的值的最后两位数字创建新列

根据R中另一列中的唯一值创建批次的升序值,并批量添加新数据

根据r中另一列的观测值创建新列

根据另一列中的条件将值插入另一列中的新列中

根据另一列的值创建新列

Pandas 根据另一列的非空值创建一个新列

使用 map() 时出错:根据另一列中的值创建新的 Pandas 列

根据 Pandas 中另一列中相似值的分组创建一个新列

熊猫根据另一列选定的值创建新列

如何根据另一列 SQL 中的值创建具有计数值的新列

根据熊猫中另一列上的值在数据框中创建一个新列

如何迭代另一列中的嵌套字段以根据另一个值创建新列?

根据前一列中的值创建新列

根据另一列和另一个表中的值创建一个新列

根据另一列 pandas 中特定值的累积出现次数创建一个新列

Pandas:根据另一列的文本值创建新列