programing

panda DataFrame에서 특정 열 이름 변경

minecode 2022. 9. 15. 22:15
반응형

panda 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'

힌트를 주시면 감사하겠습니다.

1개의 라이너가 존재합니다.

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

다음으로 의 docstring을 나타냅니다.rename방법.

정의: df.darges(self, index=None, columns=None, copy=True, inplace=False)문서 문자열:
입력 함수를 사용하여 인덱스 및/또는 열을 변경합니다.기능들.함수 / dict 값은 고유해야 합니다(1-1-1).라벨 없음dict / Series에 포함되어 있으면 그대로 남습니다.

파라미터----------인덱스: dict-like 또는 함수, 옵션인덱스 값에 적용할 변환컬럼 : dict-like 또는 function, 옵션열 값에 적용할 변환copy : 부울, 디폴트 True또한 기본 데이터 복사inplace : 부울, 디폴트 False새 Data Frame을 반환할지 여부입니다.True일 경우 복사 값은 다음과 같습니다.무시당했습니다.

「 」를 참조해 주세요.--------Series. 이름 변경
돌아온다-------이름 변경 : DataFrame (새 객체)

부터inplace인수를 사용할 수 있습니다.원래 데이터 프레임을 복사하여 다시 할당할 필요는 없습니다.다만, 다음과 같이 실시해 주세요.

df.rename(columns={'two':'new_name'}, inplace=True)

뭘요?

df.columns[2] = "new_name"

어느 열 번호(첫 번째/두 번째/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..)

팬더 0.21은 이제 축 매개 변수를 가집니다.

rename 메서드는 나머지 팬더 API와 일치하는 축 매개변수를 얻었습니다.

이 외에도 다음과 같은 것이 있습니다.

df.rename(columns = {'two':'new_name'})

다음 작업을 수행할 수 있습니다.

df.rename({'two':'new_name'}, axis=1)

또는

df.rename({'two':'new_name'}, axis='columns')

여기서 열 이름을 변경하는 것은 두 가지 모두에 사용할 수 있는 간단한 방법입니다.Default(0,1,2,etc;)및 기존 열이지만 큰 데이터 세트(열 수가 많음)에는 그다지 유용하지 않습니다.

더 큰 데이터 세트의 경우 필요한 열을 잘라 다음 코드를 적용할 수 있습니다.

df.columns = ['new_name','new_name1','old_name']

팬더 버전 0.23.4

df.rename(index=str,columns={'old_name':'new_name'},inplace=True)

기록의 경우:

index=str을 생략하면 오류 교체가 발생합니다. 예기치 않은 인수 'signal'이 있습니다.

다음과 같은 짧은 코드가 도움이 됩니다.

df3 = df3.rename(columns={c: c.replace(' ', '') for c in df3.columns})

열에서 공백을 제거합니다.

다른 옵션은 단순히 열을 복사하여 드롭하는 것입니다.

df = pd.DataFrame(d)
df['new_name'] = df['two']
df = df.drop('two', axis=1)
df.head()

그 후 결과를 얻을 수 있습니다.

    one three   new_name
0   1   a       9
1   2   b       8
2   3   c       7
3   4   d       6
4   5   e       5

size = 10
df.rename(columns={df.columns[i]: someList[i] for i in range(size)}, inplace = True)

언급URL : https://stackoverflow.com/questions/20868394/changing-a-specific-column-name-in-pandas-dataframe

반응형