각 열 이름에 접미사 (또는 접두사)를 추가하는 방법은 무엇입니까?
다음 _x
과 같이 각 열 이름 에 접미사 를 추가하고 싶습니다 .
featuresA = myPandasDataFrame.columns.values + '_x'
어떻게해야합니까? 또한 x_
접미사 로 추가 방법 변경 솔루션이 있습니까?
list
이해력을 사용할 수 있습니다 .
df.columns = [str(col) + '_x' for col in df.columns]
다른 답변에서 언급했듯이 및 과 같은 기본 제공 방법도 있습니다 ..add_suffix()
.add_prefix()
다음은 내 생각에 접미사를 추가하는 가장 좋은 방법입니다.
df = df.add_suffix('_some_suffix')
DataFrame에서 호출되고 DataFrame을 반환하는 함수를 호출 체인에서 사용할 수 있습니다.
우아한 내부 연결
df
제자리에서 수정하려는 경우 가장 저렴한 (가장 간단한) 옵션은 제자리에 직접 추가하는 것입니다 df.columns
(예 : 사용 Index.__iadd__
).
df = pd.DataFrame({"A": [9, 4, 2, 1], "B": [12, 7, 5, 4]})
df
A B
0 9 12
1 4 7
2 2 5
3 1 4
df.columns += '_some_suffix'
df
A_some_suffix B_some_suffix
0 9 12
1 4 7
2 2 5
3 1 4
접두사를 추가 비용 유사하게
df.columns = 'some_prefix_' + df.columns
df
some_prefix_A some_prefix_B
0 9 12
1 4 7
2 2 5
3 1 4
또 다른 저렴한 옵션은 f-string
형식화 (python3.6 이상에서 사용 가능) 와 함께 목록 이해를 사용하는 것 입니다.
df.columns = [f'{c}_some_suffix' for c in df]
df
A_some_suffix B_some_suffix
0 9 12
1 4 7
2 2 5
3 1 4
접두사도 많음
df.columns = [f'some_prefix{c}' for c in df]
메소드 체이닝
메소드 체이닝 중에 * 수정을 추가하는 것도 가능합니다. 접미사를 추가 비용DataFrame.add_suffix
df.add_suffix('_some_suffix')
A_some_suffix B_some_suffix
0 9 12
1 4 7
2 2 5
3 1 4
이 데이터 의 복사본 을 반환합니다 . IOW df
는 수정되지 않습니다.
접두사 추가도 DataFrame.add_prefix
.
df.add_prefix('some_prefix_')
some_prefix_A some_prefix_B
0 9 12
1 4 7
2 2 5
3 1 4
또한 수정하지 않습니다 df
.
비판 add_*fix
메서드 체이닝을 수행하려는 경우 다음은 좋은 방법입니다.
df.some_method1().some_method2().add_*fix(...)
그러나 add_prefix
(및 add_suffix
) 헤더를 수정하기 위해 전체 데이터 프레임 의 복사본을 만듭니다 . 여전히 연결할 수있는 가능성있는 다음을 호출 할 수 있습니다 pipe
.
def add_suffix(df):
df.columns += '_some_suffix'
return df
df.some_method1().some_method2().pipe(add_suffix)
참고 URL : https://stackoverflow.com/questions/34049618/how-to-add-a-suffix-or-prefix-to-each-column-name
'ProgramingTip' 카테고리의 다른 글
Json.NET에서 키 목록을 얻으려면 어떻게해야합니까? (0) | 2020.12.14 |
---|---|
setTimeout을 사용할 때 메소드가 즉시 실행되는 이유는 무엇입니까? (0) | 2020.12.14 |
미리보기없이 카메라에서 사진 찍기 (0) | 2020.12.13 |
FULL JOIN과 INNER JOIN의 차이점 (0) | 2020.12.13 |
아이콘에는 이미 광택 효과가 포함되어 있습니다. (0) | 2020.12.13 |