250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- chatGPT
- UDF
- GenericGBQException
- correlation
- integrated gradient
- Airflow
- 유튜브 API
- API
- spark udf
- requests
- API Gateway
- XAI
- top_k
- session 유지
- BigQuery
- airflow subdag
- tensorflow text
- GCP
- login crawling
- hadoop
- TensorFlow
- subdag
- flask
- 공분산
- 상관관계
- grad-cam
- youtube data
- gather_nd
- Counterfactual Explanations
- Retry
Archives
- Today
- Total
데이터과학 삼학년
[pandas] apply적용 (func return값이 multi일때 어떻게 적용?) 본문
반응형
pandas를 이용한 데이터 분석을 하다보면 간단한 함수를 적용하여 새로운 컬럼을 생성하는 것은 매우 흔한일이다.
예를 들면 아래 코드 예시처럼 커스텀 function이나 lambda를 이용하여 원하는 형태의 컬럼을 생성한다.
def detect_language(text):
"""Detects the text's language."""
translate_client = translate.Client()
result = translate_client.detect_language(text)
return result["language"]
# 해당 메시지가 어느나라 언어인지 확인하는 컬럼 생성
df['langauge']= df['message'].apply(detect_language)
# 메시지 길이 산정
df['message_length'] = df['message'].apply(lambda x:len(x))
그렇다면, apply를 적용하려는 function의 return값이 한개가 아니라 두개 이상일때는 어떻게 해야하는가???
아주 간단하다. zip(*df)을 이용하면 쉽게 처리 가능하다.
def detect_translate_language(text):
from google.cloud import translate_v2 as translate
translate_client = translate.Client()
result = translate_client.translate(text, target_language='ko')
return result["detectedSourceLanguage"], result["translatedText"]
df['langauge'], df['translated_message']= zip(*df['message'].apply(detect_translate_language))
728x90
반응형
LIST
'Python' 카테고리의 다른 글
* VS ** 차이 (리스트 or 딕셔너리 풀어낼때) (0) | 2023.05.05 |
---|---|
[파이썬 클린코드] Chapter1. 코드 포매팅과 도구 (0) | 2023.01.15 |
pandas 컬럼값 조건 변경 (0) | 2022.04.18 |
Modin : Use modin to replace pandas in larger data (0) | 2022.03.31 |
내 코드를 테스트한다. (feat. pytest) (0) | 2022.03.28 |
Comments