Pandas

[Pandas]데이터프레임

김천종 2022. 10. 27. 23:20
반응형
import pandas as pd ##pandas를 pd라는 이름으로 불러옴
## 데이터프레임은 열, 행을 가지는 자료구조.
## 열은 딕셔너리의 key이고 행은 정수형이다.
dict_data = {'열0':[1,2,3], "열1":[4,5,6], '열2':[7,8,9], '열3':[10,11,12]} #리스트를 값으로 가지고 key가 열X인 딕셔너리 정의
df = pd.DataFrame(dict_data)

 

print(type(df))
print(df)
dict_data = [[1,2,3], [4,5,6], [7,8,9]] #2차원 배열(리스트)
df = pd.DataFrame(dict_data, columns= ['c0', 'c1', 'c2'], index= ['r0', 'r1', 'r2'])
'''결과
c0 c1 c2
r0 1 2 3
r1 4 5 6
r2 7 8 9
'''
df.columns=['col0', 'co1', 'col2']
df.index=['row0', 'row1', 'row2']
df.rename(columns={'col0':'바꿀이름'}, inplace=False) #inplace =True 이면 df 데이터프레임 자체를 바꾸고 False인 경우 새로운 데이터프레임으로 만든다.
#False인 경우 새로운 데이터프레임으로 만든다. 기존은 유지함.
df.drop('col0', axis=1, inplace=True) ##col0 열을 삭제함, axis=1일때 열을 삭제, axis=0이거나 작성하지 않았을때 행 삭제
df.drop('row0', axis=0, inplace=True)
 
####행 선택#####
#loc, lioc을 이용. loc은 인덱스 이름을 통해 행 선택, lioc은 정수형 위치 인덱스를 통해 행 선택
data= {'수학':[75, 80, 35], '음악':[15, 100, 66], '체육':[75, 89, 99]}
df = pd.DataFrame(data, index=['철수', '영희' ,'건희'])
row0 = df.loc['철수':'건희']
r0 = df.iloc[0:2] ##A:B는 A에서 B-1까지이므로 마지막 행인 건희의 데이터는 포함되지 않는다.
 
####열 선택####
#df['열이름'] or df.열이름 으로 열 선택
df['수학']
df.수학
df[['수학','체육']]

 

####데이터 선택####
df.loc['철수', '수학']
df.iloc[0,0]
df.iloc[0,0:2] #0번째 행, 열의 정수 인덱스가 0~1인 데이터를 선택
 
#####열 추가#####
df['해석학']= 100 , 70, 30 # = 다음에 하나의 데이터만 넣었을 경우 추가되는 열의 모든 데이터는 하나의 데이터로 초기화
 
#####행 추가####
df.loc['재민'] = 100
print(df)
df.loc['철수'] = 100 #기존의 인덱스와 이름이 같을 경우 값을 변경한다.
 
#####데이터 변경#####
df.iloc[1,3] = 1000 # 정수 인덱스가 1인 열과 정수 인덱스가 3인 열을 가진 데이터를 선택하고 1000으로 초기화한다.
 
#####행, 열 바꾸기#####
df.T
a = df.transpose() #기존의 데이터프레임을 변경하는 것이 아니라 새로운
반응형