아미(아름다운미소)

df 에서 a컬럼으로 distinct 했을때 b컬럼이 true인 c값을 copy해서 해당그룹의 b값을모두 c값으로 바꿔준다 본문

랭귀지/pandas

df 에서 a컬럼으로 distinct 했을때 b컬럼이 true인 c값을 copy해서 해당그룹의 b값을모두 c값으로 바꿔준다

유키공 2024. 9. 2. 09:31
import pandas as pd

# 예시 데이터프레임 생성
data = {
    'a': ['x', 'x', 'y', 'y', 'z'],
    'b': [True, False, True, False, False],
    'c': [1, 2, 3, 4, 5]
}

df = pd.DataFrame(data)

# b값을 c값으로 업데이트
df['b'] = df.groupby('a')['b'].transform(lambda x: df.loc[x.index, 'c'][x].iloc[0] if any(x) else None)

print(df)
import pandas as pd

# 예시 데이터프레임 생성
data = {
    'a': ['x', 'x', 'y', 'y', 'z'],
    'b': [True, False, True, False, False],
    'c': [1, 2, 3, 4, 5]
}

df = pd.DataFrame(data)

# 그룹화하여 b가 True인 c 값을 찾고, 해당 값을 모든 b 값으로 변경
df['c'] = df.groupby('a')['c'].transform(lambda x: x[df['b']].iloc[0] if any(df['b']) else None)

# b 값을 c 값으로 변경
df['b'] = df['c']

print(df)
Comments