수색…


정규 표현식

# Extract strings with a specific regex
df= df['col_name'].str.extract[r'[Aa-Zz]']

# Replace strings within a regex
df['col_name'].str.replace('Replace this', 'With this')

정규식을 사용하여 문자열을 일치시키는 방법에 대한 정보 는 정규 표현식 시작하기를 참조하십시오.

문자열 분할

Series의 문자열은 .str.slice() 메서드를 사용하여 슬라이스하거나 대괄호 ( .str[] )를 사용하여보다 편리하게 .str.slice() 할 수 있습니다.

In [1]: ser = pd.Series(['Lorem ipsum', 'dolor sit amet', 'consectetur adipiscing elit'])
In [2]: ser
Out[2]: 
0                    Lorem ipsum
1                 dolor sit amet
2    consectetur adipiscing elit
dtype: object 

각 문자열의 첫 번째 문자를 가져옵니다.

In [3]: ser.str[0]
Out[3]: 
0    L
1    d
2    c
dtype: object

각 문자열의 처음 세 문자 가져 오기 :

In [4]: ser.str[:3]
Out[4]: 
0    Lor
1    dol
2    con
dtype: object

각 문자열의 마지막 문자 가져 오기 :

In [5]: ser.str[-1]
Out[5]:
0    m
1    t
2    t
dtype: object

각 문자열의 마지막 세 문자 가져 오기 :

In [6]: ser.str[-3:]
Out[6]: 
0    sum
1    met
2    lit
dtype: object

처음 10 자의 모든 다른 문자 가져 오기 :

In [7]: ser.str[:10:2]
Out[7]: 
0    Lrmis
1    dlrst
2    cnett
dtype: object

팬더는 조각과 인덱스를 처리 할 때 파이썬과 비슷하게 동작합니다. 예를 들어, 인덱스가 범위를 벗어나면 Python은 오류를 발생시킵니다.

In [8]:'Lorem ipsum'[12]
# IndexError: string index out of range

그러나 슬라이스가 범위를 벗어나면 빈 문자열이 반환됩니다.

In [9]: 'Lorem ipsum'[12:15]
Out[9]: ''

Pandas는 인덱스가 범위를 벗어날 때 NaN을 반환합니다.

In [10]: ser.str[12]
Out[10]:
0    NaN
1      e
2      a
dtype: object

슬라이스가 범위를 벗어난 경우 빈 문자열을 반환합니다.

In [11]: ser.str[12:15]
Out[11]:
0       
1     et
2    adi
dtype: object

문자열의 내용 확인하기

str.contains() 메서드를 사용하여 Series의 각 문자열에서 패턴이 발생하는지 확인할 수 있습니다. str.startswith()str.endswith() 메서드는보다 특수화 된 버전으로 사용할 수도 있습니다.

In [1]: animals = pd.Series(['cat', 'dog', 'bear', 'cow', 'bird', 'owl', 'rabbit', 'snake'])

문자열에 'a'문자가 포함되어 있는지 확인하십시오.

In [2]: animals.str.contains('a')
Out[2]:
0      True
1     False
2      True
3     False
4     False
5     False
6      True
7      True
8      True
dtype: bool

이는 'a'라는 문자가있는 동물 만 반환하는 부울 인덱스로 사용할 수 있습니다.

In [3]: animals[animals.str.contains('a')]
Out[3]: 
0       cat
2      bear
6    rabbit
7     snake
dtype: object

str.startswithstr.endswith 메소드는 비슷하게 작동하지만 튜플을 입력으로 사용할 수도 있습니다.

In [4]: animals[animals.str.startswith(('b', 'c'))]
# Returns animals starting with 'b' or 'c'
Out[4]: 
0     cat
2    bear
3     cow
4    bird
dtype: object

문자열의 대문자 사용

In [1]: ser = pd.Series(['lORem ipSuM', 'Dolor sit amet', 'Consectetur Adipiscing Elit'])

모두 대문자로 변환 :

In [2]: ser.str.upper()
Out[2]:
0                    LOREM IPSUM
1                 DOLOR SIT AMET
2    CONSECTETUR ADIPISCING ELIT
dtype: object

모두 소문자 :

In [3]: ser.str.lower()
Out[3]:
0                    lorem ipsum
1                 dolor sit amet
2    consectetur adipiscing elit
dtype: object

첫 번째 문자를 대문자로 만들고 나머지는 소문자로 만듭니다.

In [4]: ser.str.capitalize()
Out[4]:
0                    Lorem ipsum
1                 Dolor sit amet
2    Consectetur adipiscing elit
dtype: object

각 문자열을 제목으로 변환하십시오 (각 문자열에서 각 단어의 첫 문자를 대문자로하고 나머지는 소문자로 지정하십시오).

In [5]: ser.str.title()
Out[5]:
0                    Lorem Ipsum
1                 Dolor Sit Amet
2    Consectetur Adipiscing Elit
dtype: object

대소 문자 바꾸기 (소문자에서 대문자로 또는 그 반대로 변환) :

In [6]: ser.str.swapcase()
Out[6]:
0                    LorEM IPsUm
1                 dOLOR SIT AMET
2    cONSECTETUR aDIPISCING eLIT
dtype: object

대문자를 변경하는 이러한 메서드 외에도 여러 메서드를 사용하여 문자열의 대문자 사용을 확인할 수 있습니다.

In [7]: ser = pd.Series(['LOREM IPSUM', 'dolor sit amet', 'Consectetur Adipiscing Elit'])

소문자가 맞는지 확인하십시오.

In [8]: ser.str.islower()
Out[8]:
0    False
1     True
2    False
dtype: bool

모두 대문자입니까?

In [9]: ser.str.isupper()
Out[9]:
0     True
1    False
2    False
dtype: bool

제목이있는 문자열입니까?

In [10]: ser.str.istitle()
Out[10]:
0    False
1    False
2     True
dtype: bool


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow