해결된 질문
작성
·
15
답변 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의 각 행에서 원하는 위치의 단어를 손쉽게 추출할 수 있습니다.
이미지 설명과 예제가 도움이 되셨길 바랍니다! 추가적으로 궁금한 점이 생긴다면 계속해서 질문해 주세요. 유사한 문제에 대한 자세한 해결 방법은 아래 게시글을 참조해 보세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.