Pandas用apply()生成特征向量

2024-04-26 06:09:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个具有两个特性的数据集:class(int)和content(text)。在

每一行内容都需要向量化为一组匹配正则表达式的布尔特征。我的矢量化函数返回一个包含17个功能的字典,例如:

{'email':1, 'phone':0, 'curses':1,....}

现在我的代码是:

^{pr2}$

期望的结果是:

class content            email phone curse ...
    0 'Hi'               0     0     0 ...
    1 'john@doe.com'     1     0     0 ...

在一个真正的word数据集中(~1mm行),这需要很长时间!在

我的目标是拥有一个最终的数据集,其中的类和每个布尔特征都作为列来提供给RandomForestClassifier。在

我对sklearn/pandas很陌生,所以很可能我做错了什么。在

关于如何优化这个过程有什么建议吗?在

谢谢!在


Tags: 数据函数text功能内容字典emailphone
1条回答
网友
1楼 · 发布于 2024-04-26 06:09:13

我想用这个代码可以运行得更快。在

# Simulate function
def vectorize_content(c):
    return {'email':1, 'phone':0, 'curses':1}
# Simulate test data
data = pd.DataFrame({'class': [0,1], 'content': ['Hi','john@doe.com']})

vectorized = pd.concat([data, vectorized['content'].apply(lambda c: pd.Series(vectorize_content(c)))], axis=1)

# Result
   class       content  curses  email  phone
0      0            Hi       1      1      0
1      1  john@doe.com       1      1      0

相关问题 更多 >