>백엔드 개발 >파이썬 튜토리얼 >Pandas DataFrame에서 구두점을 제거하는 가장 빠른 방법은 무엇입니까?

Pandas DataFrame에서 구두점을 제거하는 가장 빠른 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-19 06:45:03345검색

What is the Fastest Way to Remove Punctuation from a Pandas DataFrame?

Pandas를 사용한 빠른 구두점 제거

구두점 제거는 일반적인 텍스트 정리 작업입니다. pandas str.replace는 널리 사용되는 방법이지만 대규모 데이터세트에서는 성능이 충분하지 않을 수 있습니다.

str.replace의 대안:

  • regex.sub: re 모듈을 사용하여 정규식 기반 대체를 수행합니다. 이 옵션은 str.replace보다 향상된 성능을 제공합니다.
  • str.translate: C 구현 str.translate 기능을 활용하여 속도가 크게 향상됩니다.

벤치마크:

  • str.translate가 가장 좋은 성능을 보였으며, regex.sub와 str.replace가 그 뒤를 이었습니다.
  • 성능 격차는 증가함에 따라 확대됩니다. 데이터 세트 크기.

고려 사항:

  • regex.sub 및 str.translate는 DataFrame의 NaN 값을 처리할 수 없습니다.
  • str.translate는 데이터에 기본 구두점 제외로 제외될 수 있는 문자가 포함된 경우 특별한 처리가 필요합니다.

코드:

import pandas as pd
import re

# Regex.sub
df['text'] = [re.compile(r'[^\w\s]+').sub('', x) for x in df['text'].tolist()]

# str.translate
punct = '!"#$%&\'()*+,-./:;<=>?@[\]^_`{|}~'
transtab = str.maketrans(dict.fromkeys(punct, ''))
df['text'] = '|'.join(df['text'].tolist()).translate(transtab).split('|')

위 내용은 Pandas DataFrame에서 구두점을 제거하는 가장 빠른 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.