data =
y gdp cap
0 1 2 5
1 2 3 9
2 8 7 2
3 3 4 7
4 6 7 7
5 4 8 3
6 8 2 8
7 9 9 10
8 6 6 4
9 10 10 7
data.rename(columns={'gdp':'log(gdp)'}, inplace=True)
['변경하십시오'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.rename.html # 프란다s.다태프라메트레나미) 이 있음을 보여 승인하면 딕트 비호환성의 매개변수 "에 대한 열 수 있도록 한 '딕트 그냥 지나칠 수 있는 단일 입력.
또한 지켜보리니 [관련] (https://stackoverflow.com/questions/11346283/renaming-columns-in-pandas)
훨씬 빠른 구축상의 약간만이라도 사용할 수 있는 '번역 목록' 할 경우 단일 열을 변경하십시오.
df.columns = ['log(gdp)' if x=='gdp' else x for x in df.columns]
필요할 경우 여러 열이 바꾸려면 사용하거나 조건식의 다음과 같습니다.
df.columns = ['log(gdp)' if x=='gdp' else 'cap_mod' if x=='cap' else x for x in df.columns]
또는 '사전' 와 '번역 목록 chunghwa 매핑을 사용하는' s '' 작업을 수행할 수 있는 기본 값으로 설정하여 it& # 39, 이전 이름:
col_dict = {'gdp': 'log(gdp)', 'cap': 'cap_mod'} ## key→old name, value→new name
df.columns = [col_dict.get(x, x) for x in df.columns]
%%timeit
df.rename(columns={'gdp':'log(gdp)'}, inplace=True)
10000 loops, best of 3: 168 µs per loop
%%timeit
df.columns = ['log(gdp)' if x=='gdp' else x for x in df.columns]
10000 loops, best of 3: 58.5 µs per loop
>. # 판다 특정 열에 변경하십시오 어떻게 합니까?
V0.24+, 하나 (또는 그 이상) 의 이름을 단 한 번에
모든 단을 한 번에 바꿀 필요가 있는 경우
df = pd.DataFrame('x', columns=['y', 'gdp', 'cap'], index=range(5))
df
y gdp cap
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
함께 한 '축' 을 (를) ',' 매개변수입니다 변경하십시오 0.21+ 지정할 수 있습니다.
df.rename({'gdp':'log(gdp)'}, axis=1)
# df.rename({'gdp':'log(gdp)'}, axis='columns')
y log(gdp) cap
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
참고로, '변경하십시오' 가 아닌 내부 기본적으로 도왔으매 할당하십시오 뒤로를 결과: 합니다 .)
이 외에 나머지 API 와의 일관성을 높이기 위해 내린 바 있다. '새' 축 '열' 같은 일을 할 그들은 매개변수입니다 인수 유사하다.
df.rename(columns={'gdp': 'log(gdp)'})
y log(gdp) cap
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
'도' 라고 하는 한 번씩 각 열은 변경하십시오 콜백하는 수 있습니다.
df.rename(lambda x: x[0], axis=1)
# df.rename(lambda x: x[0], axis='columns')
y g c
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
이를 위해 구체적인 상황을 그녀의심장을 사용할 수 있습니다.
df.rename(lambda x: 'log(gdp)' if x == 'gdp' else x, axis=1)
유사한 방식으로, 파이썬, 굈 '의' 판다 문장열 인덱스할 시리즈 (객체에는 트리프 어레이만) 정의하시려면 (vectorized" ";) '방법' 스트라이어플레이스 문자열과 regex 기반 교체품.
df.columns = df.columns.str.replace('gdp', 'log(gdp)')
df
y log(gdp) cap
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
이 장점은 다른 방법을 통해 '는 것은' 스트라이어플레이스 regex (활성화됨 기본적으로). 자세한 내용은 문서 참조.
'콜' set_axis 목록과 함께 헤더입니다 (s). 길이는 열 수 있는 목록 / 인덱스 크기가 같아야 합니다. 그러나 인플레 이스 '오리지널' 변이 set_axis 다테프라임 기본적으로 지정할 수 있습니다 '= False' 반환되기를 수정된 복제본입니다.
df.set_axis(['cap', 'log(gdp)', 'y'], axis=1, inplace=False)
# df.set_axis(['cap', 'log(gdp)', 'y'], axis='columns', inplace=False)
cap log(gdp) y
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
참고: 향후 인플레 이스 '은' 기본 'True' 로.
비교
# new for pandas 0.21+
df.some_method1()
.some_method2()
.set_axis()
.some_method3()
대對
# old way
df1 = df.some_method1()
.some_method2()
df1.columns = columns
df1.some_method3()
전 더 자연스럽고 풀려났거든 흐르는 구문.