728x90
[Pandas] 데이터 프레임에서 suffix를 prefix로 바꾸기
Pandas 데이터프레임에서, Merge를 할 경우 on을 걸은 컬럼을 제외한 나머지 컬럼은
'_X', '_Y' 등으로 Suffix(접미사)가 생성된다.
suffixes 매개변수를 사용하여 접미사(suffix) 이름을 변경할 수 있음
아래는 접미사의 이름을 '_A', '_B' 로 변경하는 예제
merged_df = pd.merge(df1, df2, on='key', suffixes=('_A', '_B'))
하지만 나는 Suffix(접미사)가 아니라 Prefix(접두사)로 오게하고 싶은데,
아쉽게도 pandas에서는 따로 지원하지 않는 것 같음
그렇다면 어떻게 해야할까?
바로바로 함수를 만들어주면 된다.
데이터 프레임 생성
import pandas as pd
# df1 생성
df1_data = {
'key': ['A', 'B', 'C', 'D'],
'value': [1, 2, 3, 4]
}
df1 = pd.DataFrame(df1_data)
# df2 생성
df2_data = {
'key': ['A', 'B', 'C', 'D'],
'value': [5, 6, 7, 8]
}
df2 = pd.DataFrame(df2_data)
Merge
merged_df = pd.merge(df1, df2, on='key', suffixes=('_A', '_B'))
print(merged_df)
key value_A value_B
0 A 1 5
1 B 2 6
2 C 3 7
3 D 4 8
Suffix -> Prefix
1. 세 개의 매개 변수를 입력으로 받음
|
완성된 코드 확인
def rename_columns(df, prefix, suffix):
rename_dict = {col: prefix + col[:-len(suffix)] for col in df.columns if col.endswith(suffix)}
df = df.rename(columns=rename_dict)
return df
df = rename_columns(rename_columns(merged_df, 'df1_', '_A'), 'df2_', '_B')
print(df)
짜잔👍
key df1_value df2_value
0 A 1 5
1 B 2 6
2 C 3 7
3 D 4 8
반응형
'👩💻 Develope > Python' 카테고리의 다른 글
[Python] 예외 처리 (try, exept, else, finally) (0) | 2023.06.13 |
---|---|
[Pandas] 데이터 프레임 컬럼 순서 바꾸기 (0) | 2023.05.27 |
[Python] 정규 표현식 (1) | 2023.05.10 |
[Python] Logging 사용법 (0) | 2023.05.08 |
[Python] 이터레이터(iterator)와 제너레이터(generator) (0) | 2023.05.04 |