Python替换csv文件中的字符串

标签 python pandas csv

我想在现有的 .csv 文件中添加一个新列 tidy_tweet 以实现 remove_pattern 函数

def remove_pattern(input_txt, pattern):
    r = re.findall(pattern, input_txt)
    for i in r:
        input_txt = re.sub(i, '', input_txt)
    return input_txt   

这几行代码是我写的

data  = pd.read_csv(filepath_or_buffer='stockerbot-export.csv', error_bad_lines=False)
data['tidy_tweet'] = np.vectorize(remove_pattern)(data['text'], "@[\w]*")

我收到以下错误

MemoryError                               Traceback (most recent call last)
<ipython-input-15-d6e7e950d5b9> in <module>()
----> 1 data['tidy_tweet'] = np.vectorize(remove_pattern)(data['text'], "@[\w]*")

~\Anaconda3\lib\site-packages\numpy\lib\function_base.py in __call__(self, *args, **kwargs)
   1970             vargs.extend([kwargs[_n] for _n in names])
   1971 
-> 1972         return self._vectorize_call(func=func, args=vargs)
   1973 
   1974     def _get_ufunc_and_otypes(self, func, args):

~\Anaconda3\lib\site-packages\numpy\lib\function_base.py in _vectorize_call(self, func, args)
   2049 
   2050             if ufunc.nout == 1:
-> 2051                 res = array(outputs, copy=False, subok=True, dtype=otypes[0])
   2052             else:
   2053                 res = tuple([array(x, copy=False, subok=True, dtype=t)

MemoryError: 

我无法理解这个错误。需要帮助。

最佳答案

错误是不言自明的,当您处理大量数据并对其进行循环时,内存不足。有一个更简单的解决方案试一试。

data['tidy_tweet'] = data['text'].str.replace('@[\w]*', '',regex=True)

删除 regex=True 如果您使用的是旧版本的 pandas,即早于 0.23.0

documentation

示例:

enter image description here

关于Python替换csv文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55139940/

相关文章:

python - 数据框:添加具有其他列组平均值的列

javascript - 使用nodejs中的fast-csv根据列值将csv文件拆分为多个csv文件

php - php用utf-8编码导出csv乱码

Python 2to3 不更改文件

python - 如何使用 Seaborn 创建 FacetGrid 堆叠条形图?

pandas - 在 PySpark 的 pandas_udf 中使用外部库

C# TextFieldParser 与\n

Python 和 Powers 数学

python - 如何监控我的 gtalk 状态消息的变化?

python - 按时间间隔+聚合函数对 Pandas 进行分组