랭귀지/pandas

@ 기준으로 앞의 값을 가져오고 @가 없으면 기존 값을 유지

유키공 2025. 3. 20. 09:39
import pandas as pd
import numpy as np

# 샘플 DataFrame 생성
data = {
    'A': [11111, 22222, 11111, 33333, 44444],
    'B': ['@', '', '@', '', '']
}
df = pd.DataFrame(data)

# 결과를 저장할 새로운 열 'C' 생성
df['C'] = np.where(df['B'] == '@', df['A'].shift(), df['A'])

# DataFrame 출력
print(df)

 

 

import pandas as pd

# 예시 데이터프레임 생성
data = {'column': ['11111@111', '22222', '33333@333', '44444']}
df = pd.DataFrame(data)

# @ 기준으로 앞의 값을 추출하고, @가 없으면 기존 값을 유지
df['extracted'] = df['column'].str.extract(r'^(.*?)@')[0].fillna(df['column'])

print(df)