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