pandas DataFrame에서 특정 열 이름 변경
에서 지정된 열 이름을 변경하는 우아한 방법을 찾고있었습니다 DataFrame
.
데이터 재생 ...
import pandas as pd
d = {
'one': [1, 2, 3, 4, 5],
'two': [9, 8, 7, 6, 5],
'three': ['a', 'b', 'c', 'd', 'e']
}
df = pd.DataFrame(d)
내가 지금까지 찾은 가장 우아한 솔루션 ...
names = df.columns.tolist()
names[names.index('two')] = 'new_name'
df.columns = names
나는 간단한 원 라이너를 기대하고 있었다 ...이 시도는 실패했다 ...
df.columns[df.columns.tolist().index('one')] = 'another_name'
모든 힌트를 감사하게 받았습니다.
하나의 라이너가 존재합니다 :
In [27]: df=df.rename(columns = {'two':'new_name'})
In [28]: df
Out[28]:
one three new_name
0 1 a 9
1 2 b 8
2 3 c 7
3 4 d 6
4 5 e 5
다음은 rename
메소드 의 docstring입니다 .
정의 : df.rename (self, index = None, columns = None, copy = True, inplace = False) 독 스트링 : 입력 기능을 사용하여 색인 및 / 또는 열 변경 또는 기능. 함수 / dict 값은 고유해야합니다 (1 대 1). 라벨이 아님 dict / Series에 포함 된 내용은 그대로 유지됩니다. 매개 변수 ---------- index : dict-like 또는 function, 선택적 인덱스 값에 적용 할 변환 열 : dict-like 또는 function, 선택적 열 값에 적용 할 변환 copy : 부울, 기본 True 기본 데이터도 복사 inplace : 부울, 기본 False 새 DataFrame을 반환할지 여부 True이면 복사 값은 무시되었습니다. 또한보십시오 -------- Series.rename 보고 ------- 이름 변경 : DataFrame (새 객체)
이후 inplace
인수를 사용할 수, 당신은 복사 자체에 원래의 데이터 프레임 다시 할당해야하지만, 같은 다음하지 않는다 :
df.rename(columns={'two':'new_name'}, inplace=True)
이건 어떤가요?
df.columns.values[2] = "new_name"
팬더 0.21은 이제 축 매개 변수를 갖습니다
rename 메소드는 나머지 팬더 API의 대부분과 일치하는 축 매개 변수를 얻었습니다.
따라서 이것 외에도
df.rename(columns = {'two':'new_name'})
넌 할 수있어:
df.rename({'two':'new_name'}, axis=1)
또는
df.rename({'two':'new_name'}, axis='columns')
어떤 열이 (첫 번째 / 두 번째 / n 번째) 열인지 알면 비슷한 질문에 게시 된이 솔루션은 이름이 지정되거나 이름이 지정되지 않은 한 줄에 상관없이 작동합니다. https://stackoverflow.com/a/26336314/ 4355695
df.rename(columns = {list(df)[1]:'new_name'}, inplace=True)
# 1 is for second column (0,1,2..)
For renaming the columns here is the simple one which will work for both Default(0,1,2,etc;)
and existing columns but not much useful for a larger data sets(having many columns).
For a larger data set we can slice the columns that we need and apply the below code:
df.columns = ['new_name','new_name1','old_name']
Following short code can help:
df3 = df3.rename(columns={c: c.replace(' ', '') for c in df3.columns})
Remove spaces from columns.
pandas version 0.23.4
df.rename(index=str,columns={'old_name':'new_name'},inplace=True)
For the record:
omitting index=str will give error replace has an unexpected argument 'columns'
Another option would be to simply copy & drop the column:
df = pd.DataFrame(d)
df['new_name'] = df['two']
df = df.drop('two', axis=1)
df.head()
After that you get the result:
one three new_name
0 1 a 9
1 2 b 8
2 3 c 7
3 4 d 6
4 5 e 5
참고URL : https://stackoverflow.com/questions/20868394/changing-a-specific-column-name-in-pandas-dataframe
'Programing' 카테고리의 다른 글
Node.js-“btoa가 정의되지 않았습니다”오류 (0) | 2020.05.20 |
---|---|
Django Forms에서 CSS 클래스 정의 (0) | 2020.05.20 |
SQL Server : sp_who2의 필터 출력 (0) | 2020.05.20 |
호버에서 굵게 표시 될 때 인라인 요소 이동 (0) | 2020.05.20 |
phpmyadmin 사용자 세션이 너무 빨리 시간 초과되지 않도록 설정하는 방법은 무엇입니까? (0) | 2020.05.20 |