랭귀지/pandas
백터화
유키공
2025. 3. 11. 07:45
import pandas as pd
import numpy as np
def p_location_vectorized(df, p_location_col):
# 벡터화된 연산을 위해 numpy의 where 함수를 사용
df['return_value'] = np.where(
df[p_location_col].str.contains('@'), # '@'가 포함된 경우
df[p_location_col].str.split('@').str[-1], # '@' 이후의 부분을 반환
np.where(
df[p_location_col].str.contains('\\$'), # '$'가 포함된 경우
df[p_location_col].str.split('\\$').str[-1], # '$' 이후의 부분을 반환
df[p_location_col] # 둘 다 포함되지 않은 경우 원래 값 반환
)
)
return df
# 예시 DataFrame 생성
data = {'p_location': ['user@example.com', 'location$city', 'no_special_char']}
df = pd.DataFrame(data)
# 함수 적용
df = p_location_vectorized(df, 'p_location')
print(df)