优化熊猫中的字符串操作

时间:2021-03-06 12:34:03

标签: python python-3.x pandas numpy

我有一个包含 10M 记录的数据集,其中第一步是清理数据并使数据集中的单词长度小于 400(如果有)。可以在不使用 numba /dask 或其他多处理库的情况下以原始形式更快地完成吗?

from cleantext import clean
def func_vect(val):
    temp=clean(val,no_line_breaks=True,no_urls=True,no_emails=True,lower=True).split()

    if len(temp)<=400:
        return " ".join(u for u in temp if len(u)<=15)

    else:
        return " ".join(u for u in temp[:175]+temp[-175:] if len(u)<=15)

ufunc_vec=np.vectorize(func_vect,otypes=[str])

1 个答案:

答案 0 :(得分:-1)

这可能有效:

df['truncated_string'] = df['string'].str[:400]