랭귀지/pandas
a,b컬럼을 groupby 했을때 c컬럼이 모두 False이면 d컬럼의 알파벳이 제일 빠른행에 c컬럼값을 True로 바꿔준다
유키공
2024. 9. 13. 15:32
import pandas as pd
# 예시 데이터프레임 생성
data = {
'a': ['A', 'A', 'B', 'B'],
'b': [1, 1, 2, 2],
'c': ['False', 'False', 'False', 'False'], # 문자열로 초기화
'd': ['apple', 'banana', 'cherry', 'date']
}
df = pd.DataFrame(data)
# 그룹화
groups = df.groupby(['a', 'b'])
# c 컬럼이 모두 'False'인 그룹의 d 컬럼의 알파벳이 가장 빠른 행 찾기
for name, group in groups:
if (group['c'] == 'False').all(): # c 컬럼이 모두 'False'인 경우
# d 컬럼을 기준으로 정렬하고 첫 번째 행 선택
min_alpha_row = group.sort_values(by='d').iloc[0]
df.loc[min_alpha_row.name, 'c'] = 'True' # 해당 행의 c 값을 'True'로 변경
print(df)
import pandas as pd
# 예시 데이터프레임 생성
data = {
'a': ['A', 'A', 'B', 'B'],
'b': [1, 1, 2, 2],
'c': [False, False, False, False],
'd': ['apple', 'banana', 'cherry', 'date']
}
df = pd.DataFrame(data)
# 그룹화
groups = df.groupby(['a', 'b'])
# c 컬럼이 모두 False인 그룹의 d 컬럼의 알파벳이 가장 빠른 행 찾기
for name, group in groups:
if group['c'].all() == False: # c 컬럼이 모두 False인 경우
# d 컬럼을 기준으로 정렬하고 첫 번째 행 선택
min_alpha_row = group.sort_values(by='d').iloc[0]
df.loc[min_alpha_row.name, 'c'] = True # 해당 행의 c 값을 True로 변경
print(df)
import pandas as pd
# 예시 데이터프레임 생성
data = {
'a': ['A', 'A', 'B', 'B'],
'b': [1, 1, 2, 2],
'c': [False, False, False, False],
'd': ['apple', 'banana', 'cherry', 'date']
}
df = pd.DataFrame(data)
# 그룹화
groups = df.groupby(['a', 'b'])
# c 컬럼이 모두 False인 그룹의 d 컬럼의 알파벳이 가장 빠른 행 찾기
for name, group in groups:
if group['c'].all() == False: # c 컬럼이 모두 False인 경우
min_alpha_index = group['d'].idxmin() # d 컬럼의 알파벳이 가장 빠른 행의 인덱스
df.loc[min_alpha_index, 'c'] = True # 해당 행의 c 값을 True로 변경
print(df)