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

답변 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의 각 행에서 원하는 위치의 단어를 손쉽게 추출할 수 있습니다.
이미지 설명과 예제가 도움이 되셨길 바랍니다! 추가적으로 궁금한 점이 생긴다면 계속해서 질문해 주세요. 유사한 문제에 대한 자세한 해결 방법은 아래 게시글을 참조해 보세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
작업형 1 유형 부분
0
9
1
작업형 1 (삭제예정, 구 버전)
0
30
2
수강기간 연장 문의드립니다.
0
21
1
2유형 레이블 인코딩 VS 원핫 인코딩
0
24
3
수강기간 연장 문의드립니다.
0
26
1
인덱스 슬라이싱
0
27
2
질문 드립니다.
0
45
2
강의 내용 관련 질문드립니다~
0
43
2
수강 연장 문의
0
54
2
강의자료 일괄 다운로드
0
50
2
수강기간 연장 문의드립니다
0
40
2
list 문제 질문드립니다~
0
35
2
빅분기 실기 12회 재도전
0
53
2
강의 기간 연장 가능여부 검토 요청건
0
39
2
수강기간 연장 문의 드립니다
0
43
2
수강기간 연장 문의드립니다
0
50
2
질문이요
0
56
2
수강기간 연장 문의드립니다.
0
58
2
문제 3-2 질문드립니다
0
47
2
수강기간 연장 문의 드립니다.
0
61
2
변수, 칼럼 , df 구분
0
51
2
수강기간 연장 문의드립니다.
0
50
2
수강기간 연장 문의
0
49
2
수강기간 연장 문의드립니다.
0
42
2





