랭귀지/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)