즐거운프로그래밍

[pandas] pandas DataFrame 2

수수께끼 고양이 2023. 11. 14. 22:18
728x90
반응형

 

import pandas as pd

# We create a list of Python dictionaries
items2 = [{'bikes': 20, 'pants': 30, 'watches': 35}, 
          {'watches': 10, 'glasses': 50, 'bikes': 15, 'pants':5}]
          
pd.DataFrame(data=items2, index=['store 1','store 2'])

 

판다스의 2차원 데이터를 처리하는 "데이터프레임"에서 데이터를 액세스 하는 방법 3가지

1. 컬럼의 데이터를 가져오는 방법 : 변수명 오른쪽에 대괄호 사용
2. 사람 용인, 인덱스와 컬럼명으로 데이터 액세스 하는 방법
변수명.loc[ , ]
3. 컴퓨터용인 컴퓨터 인덱스로 데이터를 가져오는 방법
변수명.iloc[ , ]

 

1. 컬럼의 데이터를 가져오는 방법 : 변수명 오른쪽에 대괄호 사용

df = pd.DataFrame(data=items2, index=['store 1','store 2'])

df['bikes']

df[['bikes','watches']]

 

2. 사람용(진한 글씨)인, 인덱스와 컬럼명으로 데이터 액세스 하는 방법, 변수명.loc[ , ]
스토어 1의 데이터를 가져오시오

df.loc['store 1', ]
df.loc['store 1', : ] # [행(인덱스), 열(컬럼)]

 

 

스토어 1의 팬츠 데이터를 가져오시오

df.loc['store 1', 'pants']
df['pants']['store 1'] # 컬럼 액세스

 

스토어1의 바이크와 와치 데이터를 가져오시오

df.loc['store 1',['bikes', 'watches']]

 

스토어 2에서 팬츠부터 글래시스까지 데이터를 가져오시오

df.loc['store 2','pants':'glasses']

 

3. 컴퓨터용인 컴퓨터 인덱스로 데이터를 가져오는 방법, 변수명.iloc[ , ]
스토어 1의 데이터를 가져오시오

df.iloc[0,] # 프로그래밍상 부여된 번호로 작성

 

스토어 1의 팬츠 데이터를 가져오시오

df.iloc[0, [0,2]]

 

스토어 1의 데이터 중 팬츠부터 글래시스까지 가져오시오

df.iloc[0, 1:]
df.iloc[0, 1:2+1] # 리스트 뒷쪽에 +1 해줌, ex) 2번까지 불러오기
df.loc['store 1', 'pants': 'watches']

 

데이터의 값 변경
스토어2의 시계 갯수를 20으로 변경하시오

df.loc['store 2', 'watches'] = df.loc['store 2', 'watches']+10
df
df.loc['store 2', 'watches'] = 20
df

 

새로운 컬럼을 만드는 방법
shirts 라는 컬럼(열, 기둥)을 만들되, store 1에는 15, store 2에는 2로 저장하세요

df['shirts']= [15,2]
df

 

suits 라는 컬럼을 만들되, pants의 수와 shirts 수를 더해서 만드세요

df['pants']
df['shirts']
df['pants']+df['shirts']
df['suits'] = df['pants']+df['shirts']
df

 


행삭제, 열삭제 하는 방법
행삭제, store 1을 삭제하는 방법 / 변수명.drop( , )

df.drop('store 1', axis=0) # Axis(축) 2차원에서 행은 0, 열은 1

# df = df.drop('store 1', axis=0) -> 메모리에 저장

 

열삭제, watches 컬럼을 삭제하시오

df.drop('watches',axis=1)

 

bikes, glasses, suits 컬럼을 삭제하시오

df.drop(['bikes', 'glasses', 'suits'], axis =1)

 


인덱스나 컬럼명을 바꾸는 방법, 변수명.rename()

df.rename(index={'store 2' : 'last store'})

 

df.rename(columns={'bikes':'hats'})

 


컬럼을 인덱스로 사용하는 방법, 변수명.set_index(컬럼 이름)
가게 이름을 A,B 라고 하여 새로운 컬럼 name 컬럼을 만드세요

df['name']= ['A','B']
df

 

 

df.set_index('name')
df = df.set_index('name') # 메모리에 반영
df

 


다시 컬럼으로 만들고 싶다, 변수명.reset_index()

df.reset_index() # 기존에 있던 데이터는 이미 유실되어서 컴퓨터가 지정한 인덱스 번호로 바뀜

 

df = df[['watches', 'shirts', 'bikes', 'pants', 'suits', 'glasses']] 
# 데이터를 가공하는데 컬럼의 순서는 생각보다 중요하지 않음(언제든지 변경가능)
df

 

 

 

728x90
반응형