아미(아름다운미소)

a,b컬럼을 groupby 했을때 c컬럼이 모두 False이면 d컬럼의 알파벳이 제일 빠른행에 c컬럼값을 True로 바꿔준다 본문

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