>백엔드 개발 >파이썬 튜토리얼 >Pandas DataFrame 문자열 열을 두 개의 열로 분할하는 방법은 무엇입니까?

Pandas DataFrame 문자열 열을 두 개의 열로 분할하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-24 04:41:18523검색

How to Split a Pandas DataFrame String Column into Two Columns?

데이터프레임 문자열 열을 두 개의 열로 분할하는 방법은 무엇입니까?

테이블 형식 데이터로 작업할 때 추출할 데이터를 조작해야 하는 경우가 많습니다. 특정 정보. 일반적인 작업 중 하나는 문자열 값의 단일 열을 각각 원래 문자열의 일부를 포함하는 여러 열로 분할하는 것입니다.

문제 및 요구 사항

DataFrame이 있다고 가정합니다. 다음 형식의 문자열 값을 포함하는 행이라는 하나의 열이 있는 df라는 이름을 사용합니다.

          row
0    00000 UNITED STATES
1    01000 ALABAMA
2    01001 Autauga County, AL
3    01003 Baldwin County, AL
4    01005 Barbour County, AL

우리의 목표는 행 열을 두 개의 새 열(fips 및 row)로 바꿉니다. 여기서 fips에는 각 문자열의 처음 5개 문자가 포함되고 행에는 나머지 문자가 포함됩니다.

str.split()을 사용한 솔루션

행 열을 분할하는 한 가지 방법은 str.split() 메서드를 사용하는 것입니다. 이 방법은 정규식을 인수로 사용하고 정규식에 지정된 패턴을 기반으로 문자열을 분할합니다. 우리의 경우 다음 정규식을 사용할 수 있습니다.

r'(\d{5}) +'

이 정규식은 5자리 숫자 뒤에 하나 이상의 공백이 오는 순서와 일치합니다. 그런 다음 str.split() 메서드를 사용하여 이 정규식을 사용하여 행 열을 분할하고 결과 목록을 다음과 같이 fips 및 행 열에 할당할 수 있습니다.

import pandas as pd

# Split the 'row' column into 'fips' and 'row' columns
df[['fips', 'row']] = df['row'].str.split(r'(\d{5}) +', n=1, expand=True)

expand=True 매개변수는 다음과 같습니다. str.split() 메서드가 일련의 열이 아닌 여러 열이 있는 DataFrame을 반환해야 함을 지정하는 데 사용됩니다. 목록.

결과

위 코드를 실행한 후 DataFrame df는 다음과 같습니다.

         fips       row
0    00000 UNITED STATES
1    01000 ALABAMA
2    01001 Autauga County, AL
3    01003 Baldwin County, AL
4    01005 Barbour County, AL

다음을 사용하는 대체 솔루션 str.extract()

행 열을 분할하는 또 다른 방법은 다음과 같습니다. str.extract() 메소드를 사용합니다. 이 메서드는 정규식을 인수로 사용하고 정규식과 일치하는 항목이 포함된 DataFrame을 반환합니다. 우리의 경우 다음 정규 표현식을 사용할 수 있습니다.

r'(\d{5}) +\D+'

이 정규 표현식은 5개의 숫자 뒤에 하나 이상의 숫자가 아닌 숫자가 오는 순서와 일치합니다. 그런 다음 str.extract() 메서드를 사용하여 이 정규식에 대한 일치 항목을 추출하고 결과 DataFrame을 다음과 같이 fips 및 행 열에 할당할 수 있습니다.

import pandas as pd

# Split the 'row' column into 'fips' and 'row' columns
df[['fips', 'row']] = df['row'].str.extract(r'(\d{5}) +\D+')

Result

위 코드를 실행한 후 DataFrame df는 다음과 같습니다.

         fips       row
0    00000 UNITED STATES
1    01000 ALABAMA
2    01001 Autauga County, AL
3    01003 Baldwin County, AL
4    01005 Barbour County, AL

둘 다 위의 솔루션은 행 열을 fips 및 행 열로 분할하여 원하는 결과를 얻을 수 있습니다. str.split() 솔루션은 더 유연하고 정규 표현식을 기반으로 열을 분할하는 데 사용할 수 있는 반면, str.extract() 솔루션은 더 간단하고 이해하기 쉽습니다.

위 내용은 Pandas DataFrame 문자열 열을 두 개의 열로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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