pandas

[pandas] Data Frame 컬럼과 인덱스 값의 변경

전감자(◔◡◔) 2022. 10. 2. 15:47
'''
  DataFrame 컬럼 및 인덱스 변경
  1. 컬럼 변경
    df.columns=[값,값2,값3,..]
  2. 인덱스 변경 1
    df.index =[값, 값2, ...]
  2. 인덱스 변경 2
    df = pd.DataFrame(dict, index =[값, 값2, ...] )
'''

 

Data Frame 의 컬럼과 인덱스 값을 변경하는 방법을 알아보자. 

 

dict_value = {"c1":[4,5,6],
              "c2":[14,35,26],
              "c3":[43,50,61]}
df = pd.DataFrame(dict_value)
print(df)
'''
   c1  c2  c3
0   4  14  43
1   5  35  50
2   6  26  61
'''

 

위와 같은 Data Frame  df가 존재한다고 가정한다. 

 

 

1. 컬럼 변경 

 

print("1. 컬럼명 변경")
df.columns=["col1","col2","col3"]
print(df)
'''
   col1  col2  col3
0     4    14    43
1     5    35    50
2     6    26    61
'''

컬럼 명을 변경하기 위해서는 
column 값을 조회 했을 때 처럼 df.columns를 사용하면 되는데 이때 그냥 조회할 때 와는 다르게 = 를 사용하여 새롭게 값을 넣어준다고 생각하면 된다.

 

2. 인덱스 변경

 

인덱스 값은 두 가지 방법으로 변경 할 수 있다. 

 

첫 번째 방법)

print("2. 인덱스 변경 - 1")
dict_value = {"c1":[4,5,6],
              "c2":[14,35,26],
              "c3":[43,50,61]}
df = pd.DataFrame(dict_value)
print(df)
'''
   c1  c2  c3
0   4  14  43
1   5  35  50
2   6  26  61
'''
df.index=[1,2,3]
df.index=[10,20,30]
df.index=["A","B","C"]
print(df)
'''
A   4  14  43
B   5  35  50
C   6  26  61
'''

다시 Data Frame 을 원래대로 돌려주고

column 값들을 변경 했을 때와 마찬가지로 index 에다가 = 를 사용해 새로운 값을 넣어준다. 

 

 

두 번째 방법)

print("2. 인덱스 변경 - 2")
dict_value = {"c1":[4,5,6],
              "c2":[14,35,26],
              "c3":[43,50,61]}
df = pd.DataFrame(dict_value, index=["a","b","c"])
print(df)
'''
   c1  c2  c3
a   4  14  43
b   5  35  50
c   6  26  61
'''

 

두 번째 방법은 DataFrame() 함수에 있는 index 속성을 활용하는 것 

그런데 저번 포스팅에서 확인했듯이 DataFrame() 에는 columns 속성도 있는데 컬럼은 저 방법으로 

변경이 안되는 걸까?

 

궁금해서 한 번 해봤더니 

 

dict_value = {"c1":[4,5,6],
              "c2":[14,35,26],
              "c3":[43,50,61]}

df = pd.DataFrame(dict_value)
print(df, type(df)) # <class 'pandas.core.frame.DataFrame'>
'''
   c1  c2  c3
0   4  14  43
1   5  35  50
2   6  26  61
'''
df = pd.DataFrame(dict_value,columns=["1","2","3"])
print(df)
Empty DataFrame
Columns: [1, 2, 3]
Index: []

이렇게 비어있는 Data Frame 이 출력되는 것을 확인할 수 있었다. 

아마 Data Frame 이 generator 속성을 가지고 있는게 아닌가 싶다. 

 

 

 

✅ 요약 정리 

1. Data Frame 의 컬럼 값은 df.colunms = [값, 값2, ...] 로 재설정 할 수 있다.

2. Data Frame 의 인덱스 값은 df.index =[값, 값2, ...] 또는 pd.DataFrame(dict_value,index=[값,값2,...]) 로 재설정 가능하다.