【Pandas】.str.split() 메소드를 사용해, NBA 선수의 이름과 성에 대해 조사했다 no.23
안녕하세요, 마유미입니다.
Pandas의 기사를 시리즈로 쓰고 있습니다.
이번 기사는, 제23회째가 됩니다.
지난번 에 이어, 이번 기사에서도 Pandas의 DataFrame안의 캐릭터 라인 데이터를 취급하는 방법을 써 가고 싶습니다.
이번 기사에서는, Python에서도 사용하는 split() 메소드를 사용해, NBA 선수의 이름을 성과 이름으로 나누어 그 데이터를 여러가지 분석해 보겠습니다.
그럼 바로 시작하겠습니다.
이번에 사용하는 데이터
NBA 선수 데이터 을 사용하게 합니다.
이 데이터를 read_csv()로 읽으면 아래와 같이 됩니다.
.split() 메서드
우선, .split() 메소드가 어떠한 기능을 가진 메소드인가, w3s의 ls. 작은 m 로부터 정의를 인용했습니다.
인용 소스 : w3s의 ls. 작은 m
파이썬 문자열에 .split()을 사용해 보겠습니다.
공백으로 구분하고 싶으므로 인수에 ""를 전달했습니다.
공백 부분에서 각 문자열이 분할 목록으로 반환되었습니다.
그럼, 이 split() 메소드를 Pandas의 Series 오브젝트에 대해서 사용해 보겠습니다.
.split() 메서드를 Pandas Series 객체에 사용
Pandas의 Series에 대해 Python의 메소드를 사용하기 때문에,
Series.str.split()
와 같이 사이에 '.str'이 필요합니다.
※자세한 것은 마지막 기사에도 쓰고 있습니다.
이번에 사용하는 데이터의 'player_name'이라고 적힌 칼럼을 사용하여 선수의 이름과 성에 대해 알아보겠습니다.
선수의 이름과 성이 공백으로 구분되어 있으므로 split() 메서드를 사용하여 이름과 성을 별도로 검색합시다.
.str.split("") 을 사용하면 실행 결과는 다음과 같습니다.
그런 다음 반환 된 목록에서 인덱스 0 만 검색하고 싶으므로,
.str.get(0)
계속해서 씁니다.
각 값이 몇 개 있는지 계산하고 싶기 때문에
.str.value_counts()
계속합니다.
NBA 선수 중 어떤 이름의 선수가 몇 명 있는지에 대한 데이터를 얻을 수있었습니다.
마찬가지로, NBA 선수의 성에 대해 조사하고 싶을 때는 .split()로 분할한 후, 두 번째 요소를 꺼내고 싶으므로, get() 메소드의 인수를 1로 하면 괜찮습니다.
다만, 외국인의 이름은, 이름의 마지막에 「Jr.」가 들어가거나 미들 네임이 들어가 있는 경우도 있어
First-name , Last-name
되어 있지 않은 곳도 있을지도 모릅니다.
거기서 편리한 것이, str.split()의 파라미터 expand입니다.
.str.split() 매개변수 expand
인용 소스 : Pandas 문서
expand의 기본값은 False이지만 True로 변경하면 DataFrame을 반환합니다.
이렇게 되었습니다.
인덱스 11141의 선수명에는 Jr.가 붙어 있습니다.
또, 이 돌려주어진 DataFrame 를 새롭게 DataFrame 의 칼럼명에 대입해, 이 데이터를 오리지날의 DataFrame 의 우단에 붙일 수도 있습니다
다만, 이대로라면 마지막 칼럼 「blank」가 불필요한 생각이 듭니다.
.str.split("", expand=True)로 Series를 공백으로 분할한 DataFrame으로 했을 때, 선수의 이름에 최대 3의 공백이 있었으므로, 4개의 칼럼을 만들지 않을 수 없었습니다. (.split()로 4개로 분할되면, 4개의 새로운 칼럼명을 만들지 않으면 에러가 나온다)
.str.split 매개 변수 n 사용법
위와 같은 경우, 3개의 공백 부분으로 단락지어 DataFrame 으로 하는 것이 아니라, 최초의 2개의 공백만으로 단락짓고 싶네요.
그러한 경우 .str.split() 의 파라미터 n= 의 인수에 단락짓고 싶은 수를 쓰면 괜찮습니다.
Reference
이 문제에 관하여(【Pandas】.str.split() 메소드를 사용해, NBA 선수의 이름과 성에 대해 조사했다 no.23), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Mayumi_Pythonista/items/a504bc33b29b13483fd6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
우선, .split() 메소드가 어떠한 기능을 가진 메소드인가, w3s의 ls. 작은 m 로부터 정의를 인용했습니다.
인용 소스 : w3s의 ls. 작은 m
파이썬 문자열에 .split()을 사용해 보겠습니다.
공백으로 구분하고 싶으므로 인수에 ""를 전달했습니다.
공백 부분에서 각 문자열이 분할 목록으로 반환되었습니다.
그럼, 이 split() 메소드를 Pandas의 Series 오브젝트에 대해서 사용해 보겠습니다.
.split() 메서드를 Pandas Series 객체에 사용
Pandas의 Series에 대해 Python의 메소드를 사용하기 때문에,
Series.str.split()
와 같이 사이에 '.str'이 필요합니다.
※자세한 것은 마지막 기사에도 쓰고 있습니다.
이번에 사용하는 데이터의 'player_name'이라고 적힌 칼럼을 사용하여 선수의 이름과 성에 대해 알아보겠습니다.
선수의 이름과 성이 공백으로 구분되어 있으므로 split() 메서드를 사용하여 이름과 성을 별도로 검색합시다.
.str.split("") 을 사용하면 실행 결과는 다음과 같습니다.
그런 다음 반환 된 목록에서 인덱스 0 만 검색하고 싶으므로,
.str.get(0)
계속해서 씁니다.
각 값이 몇 개 있는지 계산하고 싶기 때문에
.str.value_counts()
계속합니다.
NBA 선수 중 어떤 이름의 선수가 몇 명 있는지에 대한 데이터를 얻을 수있었습니다.
마찬가지로, NBA 선수의 성에 대해 조사하고 싶을 때는 .split()로 분할한 후, 두 번째 요소를 꺼내고 싶으므로, get() 메소드의 인수를 1로 하면 괜찮습니다.
다만, 외국인의 이름은, 이름의 마지막에 「Jr.」가 들어가거나 미들 네임이 들어가 있는 경우도 있어
First-name , Last-name
되어 있지 않은 곳도 있을지도 모릅니다.
거기서 편리한 것이, str.split()의 파라미터 expand입니다.
.str.split() 매개변수 expand
인용 소스 : Pandas 문서
expand의 기본값은 False이지만 True로 변경하면 DataFrame을 반환합니다.
이렇게 되었습니다.
인덱스 11141의 선수명에는 Jr.가 붙어 있습니다.
또, 이 돌려주어진 DataFrame 를 새롭게 DataFrame 의 칼럼명에 대입해, 이 데이터를 오리지날의 DataFrame 의 우단에 붙일 수도 있습니다
다만, 이대로라면 마지막 칼럼 「blank」가 불필요한 생각이 듭니다.
.str.split("", expand=True)로 Series를 공백으로 분할한 DataFrame으로 했을 때, 선수의 이름에 최대 3의 공백이 있었으므로, 4개의 칼럼을 만들지 않을 수 없었습니다. (.split()로 4개로 분할되면, 4개의 새로운 칼럼명을 만들지 않으면 에러가 나온다)
.str.split 매개 변수 n 사용법
위와 같은 경우, 3개의 공백 부분으로 단락지어 DataFrame 으로 하는 것이 아니라, 최초의 2개의 공백만으로 단락짓고 싶네요.
그러한 경우 .str.split() 의 파라미터 n= 의 인수에 단락짓고 싶은 수를 쓰면 괜찮습니다.
Reference
이 문제에 관하여(【Pandas】.str.split() 메소드를 사용해, NBA 선수의 이름과 성에 대해 조사했다 no.23), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Mayumi_Pythonista/items/a504bc33b29b13483fd6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Series.str.split()
.str.get(0)
.str.value_counts()
인용 소스 : Pandas 문서
expand의 기본값은 False이지만 True로 변경하면 DataFrame을 반환합니다.
이렇게 되었습니다.
인덱스 11141의 선수명에는 Jr.가 붙어 있습니다.
또, 이 돌려주어진 DataFrame 를 새롭게 DataFrame 의 칼럼명에 대입해, 이 데이터를 오리지날의 DataFrame 의 우단에 붙일 수도 있습니다
다만, 이대로라면 마지막 칼럼 「blank」가 불필요한 생각이 듭니다.
.str.split("", expand=True)로 Series를 공백으로 분할한 DataFrame으로 했을 때, 선수의 이름에 최대 3의 공백이 있었으므로, 4개의 칼럼을 만들지 않을 수 없었습니다. (.split()로 4개로 분할되면, 4개의 새로운 칼럼명을 만들지 않으면 에러가 나온다)
.str.split 매개 변수 n 사용법
위와 같은 경우, 3개의 공백 부분으로 단락지어 DataFrame 으로 하는 것이 아니라, 최초의 2개의 공백만으로 단락짓고 싶네요.
그러한 경우 .str.split() 의 파라미터 n= 의 인수에 단락짓고 싶은 수를 쓰면 괜찮습니다.
Reference
이 문제에 관하여(【Pandas】.str.split() 메소드를 사용해, NBA 선수의 이름과 성에 대해 조사했다 no.23), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Mayumi_Pythonista/items/a504bc33b29b13483fd6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【Pandas】.str.split() 메소드를 사용해, NBA 선수의 이름과 성에 대해 조사했다 no.23), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Mayumi_Pythonista/items/a504bc33b29b13483fd6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)