Python Pandas DataFrame
Module/Pandas
안녕하세요. 오늘은 지난시간 포스팅했던 시리즈에 이어서 판다스를 이루는 자료구조 두번째 DataFrame에 대해 포스팅하겠습니다.
DataFrame 생성¶
파일로 데이터 프레임을 가져올 경우에는
인덱스를 변환 해준다는 등의 데이터 전처리가 꼭 필요함.
In [4]:
#필요한 모듈 세팅
from pandas import DataFrame
from pandas import read_csv
from pandas import ExcelFile
In [6]:
#csv파일로 생성하기
csvtest = read_csv('/Users/donut/tstory/TestCsvFile.csv')
csvtest
Out[6]:
In [10]:
#엑셀파일로 생성하기
#엑셀파일로 가져올 경우, 가져오기원하는 시트를 파싱 해서 불어와야함
xlsxtest = ExcelFile('/Users/donut/tstory/TestXlsxFile.xlsx')
xlsxtest
Out[10]:
In [11]:
df = xlsxtest.parse(xlsxtest.sheet_names[0])
df
Out[11]:
In [66]:
# 리스트로 생성하기
testlist = [
[1, '남자', 40, None, 64],
[2, '여자', 30, 90, 62, 72],
[1, '남자', 92, 70, None, None],
[3, '여자', 63, 60, 31, 70],
[4, '남자', 120, 50, None, 88]
]
df = DataFrame(testlist)
df
Out[66]:
DataFrame 다루기¶
In [67]:
#데이터 프레임의 컬럼과 인덱스를 바꿔주기
df.columns = ['학년', '성별', '국어', '영어', '수학', '과학']
df.index = ['짱구', '맹구', '사탕', '도적', '검사']
df
Out[67]:
In [68]:
#데이터프레임 크기 확인
#(행, 열)
dfsize = df.shape
dfsize
Out[68]:
In [69]:
#행과 열 각각의 변수 저장 가능
행 , 열 = df.shape
print(행)
print(열)
In [70]:
#데이타 프레임 상위, 하위건 확인하기
#파라미터 생략시 5건을 생성한다.
dftop = df.head(2)
dftop
Out[70]:
In [71]:
dflast = df.tail(2)
dflast
Out[71]:
In [72]:
#dataframe index to list
#데이타프레임 인덱스를 리스트로 변환하기
dfindexlist = list(df.index)
dfindexlist
Out[72]:
In [73]:
#dataframe columns to list
#데이타프레임 컬럼을 리스트로 변환하기
dfcolumnlist = list(df.columns)
dfcolumnlist
Out[73]:
In [74]:
#데이터의 값들만 확인하기
df.values
Out[74]:
In [75]:
#데이터 프레임 전치구하기
df_t = df.T
df_t
Out[75]:
데이터 접근¶
In [76]:
#데이터 프레임 확인
df
Out[76]:
In [77]:
#데이터 프레임을 열단위로 접근하기
df['성별']
Out[77]:
In [78]:
#열단위로 접근하여 그 값들을 리스트로 변환
list(df['성별'].values)
Out[78]:
In [79]:
#데이터 프레임을 행단위로 접근하기
df.loc['짱구']
Out[79]:
In [80]:
#데이터프레임을 행단위로 접근한 후 값을 리스트로 변환
list(df.loc['짱구'])
Out[80]:
데이터 프레임 값 바꿔주기¶
In [81]:
#열 -> 행 단위 접근은 에러
df.['과학','짱구'] = 100
df
In [82]:
#행 -> 열 단위 접근만 가능
df.loc['짱구','과학'] = 100
df
Out[82]:
In [83]:
#접근하고자 하는 행이나,
#열이 없다면 생성하여 데이터 프레임에 반영됨
df.loc['스타벅스','과학'] = 100
df
Out[83]:
In [84]:
df.loc['커피빈','의자'] = 100
df
Out[84]:
이 포스팅은 이젠아이티 주호쌤에게 강의를 듣고 복습하며 작성하였습니다.
In [ ]:
'Module > Pandas' 카테고리의 다른 글
파이썬 3차원 배열 다루기 (0) | 2020.08.02 |
---|---|
Python pandas series (0) | 2020.07.19 |