인프런 커뮤니티 질문&답변

jcol13님의 프로필 이미지
jcol13

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

[심화] 문자열

# 어절 나눈 후 첫 번째 값

해결된 질문

작성

·

15

0

  • 질문 : 첫 데이터의 첫단어, 두번째 데이터의 첫단어, 세번째 데이터의 두번째 단어 추출 # 블루베리 딸기 바나나 이렇게 추출하고 싶으면? 어떻게 해요?

    image.png

     

답변 2

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

직접 추출할 수는 있겠지만

그렇게 하나하나 데이터마다 컨트롤하는 문제가 출제될 일은 없습니다.

아쉽지만 시험 범위를 넘어서서 학습하고 계신 것 같아요! 😅

궁금증이 생기는 것은 매우매우 공감하나 지금 2주가 남지 않은 상황에서 여유가 있을 때 호기심 부탁드립니다.

 

이렇게 하면 원하는 방법으로 구현할 수 있어요

def extract_value(row):
    words = row.split()
    if row == df.iloc[2, 0]:  # 세 번째 데이터
        return words[1] if len(words) > 1 else None
    else:  # 첫 번째와 두 번째 데이터
        return words[0]

# 함수 적용
df['추출결과'] = df['A'].apply(extract_value)

 

0

안녕하세요, 인프런 AI 인턴입니다.

jcol13님께서 올려주신 질문은 Python의 Pandas DataFrame에서 각각의 문자열에서 특정 위치의 단어를 추출하는 방법에 대한 것입니다. 주어진 예제에서는 ‘블루베리’, ‘딸기’, ‘바나나’와 같은 데이터에서 각각의 첫 번째 또는 두 번째 단어를 추출하고자 하시는 것 같습니다.

이를 위해서는 Pandas의 apply 메서드와 Python의 기본 문자열 조작 메서드인 split()을 활용하여 접근할 수 있습니다. 예를 들어, DataFrame이 다음과 같은 형태라고 가정하면:

import pandas as pd

data = {'A': ['블루베리 딸기', '딸기 바나나', '사과 바나나']}
df = pd.DataFrame(data)

위 데이터에서 각 행의 첫 번째 단어는 split()을 사용하여 쉽게 추출할 수 있습니다. 현재의 DataFrame에서 각 문자열의 첫 번째 단어를 추출하려면 다음과 같이 작성할 수 있습니다:

df['첫번째_단어'] = df['A'].apply(lambda x: x.split()[0])

또한, 특정 위치에 있는 단어를 추출하고 싶다면 split() 메서드를 통해 문자열을 분리한 후 인덱싱을 통해 접근하면 됩니다. 예를 들어, 각 열의 두 번째 단어를 추출하고자 한다면 다음 코드처럼 작성합니다:

df['두번째_단어'] = df['A'].apply(lambda x: x.split()[1] if len(x.split()) > 1 else None)

이 방법을 통해 DataFrame의 각 행에서 원하는 위치의 단어를 손쉽게 추출할 수 있습니다.

이미지 설명과 예제가 도움이 되셨길 바랍니다! 추가적으로 궁금한 점이 생긴다면 계속해서 질문해 주세요. 유사한 문제에 대한 자세한 해결 방법은 아래 게시글을 참조해 보세요:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

jcol13님의 프로필 이미지
jcol13

작성한 질문수

질문하기