다음 _x
과 같이 각 열 이름 에 접미사 를 추가하고 싶습니다 .
featuresA = myPandasDataFrame.columns.values + '_x'
어떻게해야합니까? 또한 x_
접미사 로 추가 하려면 솔루션이 어떻게 변경됩니까?
다음 _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을 반환하는 함수이므로 호출 체인에서 사용할 수 있습니다.
inplace=True
매개 변수 옵션이 없음). 그렇지 않으면 완벽합니다.
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]
메소드 체이닝 중에 * fix를 추가하는 것도 가능합니다. 접미사를 추가하려면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)
new
또는 같은 공통 단어 (예 : 또는 old
)가 포함 된 열)? 감사.
df = pd.DataFrame([[1,2,3]]*10)
-> 와 같은 RangeIndex 인 경우 df.columns
에는 다음을 사용합니다.df.add_suffix('_x')
df.columns = df.columns.astype(str) + '_x'
내 첫 번째 방법이 보여주는 것처럼 할 수 있습니다 .
DataFrame.rename
.add_prefix
및 지원 중단add_suffix
팬더의 미래 버전에서 add_prefix
와 add_suffix
됩니다 되지 않습니다 . 새로운 권장 방법은 다음을 사용하는 것입니다 DataFrame.rename
.
df = pd.DataFrame({'A': range(3), 'B': range(4, 7)})
print(df)
A B
0 0 4
1 1 5
2 2 6
사용 rename
하여 axis=1
문자열 서식 :
df.rename('col_{}'.format, axis=1)
# or df.rename(columns='col_{}'.format)
col_A col_B
0 0 4
1 1 5
2 2 6
실제로 열 이름을 덮어 쓰려면 반환 된 값을 다음에 할당 할 수 있습니다 df
.
df = df.rename('col_{}'.format, axis=1)
또는 사용 inplace=True
:
df.rename('col_{}'.format, axis=1, inplace=True)