ProgramingTip

각 열 이름에 접미사 (또는 접두사)를 추가하는 방법은 무엇입니까?

bestdevel 2020. 12. 13. 10:25
반응형

각 열 이름에 접미사 (또는 접두사)를 추가하는 방법은 무엇입니까?


다음 _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

반응형