아미(아름다운미소)

Pandas df 에서 a컬럼을 distinct 했을때 b컬럼이 true인 c값을 copy해서 b칼럼에 넣어주는예제 본문

랭귀지/pandas

Pandas df 에서 a컬럼을 distinct 했을때 b컬럼이 true인 c값을 copy해서 b칼럼에 넣어주는예제

유키공 2024. 8. 16. 15:25
import pandas as pd

# 예제 데이터프레임 생성
data = {
    'a': ['apple', 'banana', 'apple', 'orange', 'banana'],
    'b': [True, False, True, True, False],
    'c': [1, 2, 3, 4, 5]
}

df = pd.DataFrame(data)

# a 컬럼의 고유 값에 대해 b가 True인 c 값을 가져와서 b에 복사
for unique_a in df['a'].unique():
    # 해당 a값을 가진 행 중 b가 True인 c 값 찾기
    true_c_values = df.loc[(df['a'] == unique_a) & (df['b'] == True), 'c']
    
    if not true_c_values.empty:
        # 첫 번째 True인 c 값을 b 컬럼에 할당
        df.loc[df['a'] == unique_a, 'b'] = true_c_values.iloc[0]

print(df)
import pandas as pd

# 예제 데이터프레임 생성
data = {
    'a': ['apple', 'banana', 'apple', 'orange', 'banana'],
    'b': [True, False, True, True, False],
    'c': [1, 2, 3, 4, 5]
}

df = pd.DataFrame(data)

# b가 True인 c 값을 a 컬럼으로 그룹화하여 복사
df['b'] = df.groupby('a')['c'].transform(lambda x: x[df['b']].iloc[0] if any(df['b']) else None)

print(df)
Comments