DataFrame은 2차원 배열형식. 표 같은 스프레드시트 자료구조 여러 개의 컬럼을 가지며 서로 다른 종류의 값이 담긴다.
DataFrame은 다양한 방식으로 생성되지만 가장 흔하게 생성하는 방법으로
1)리스트를 값으로 가지는 딕셔너리 방법으로 생성
2)Numpy 배열을 이용해서 생성
3)read_csv(), read_excel()함수등을 이용해서 생성
1. 딕셔너리로 dataframe 만들기
key는 자동으로 column으로 value(리스트)는 values로 들어감
key : [리스트]
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
import matplotlib.pyplot as plt
df_dic = {
'state':['Ohio','Ohio', 'Ohio','Nevada','Nevada','Nevada'],
'year': [2000, 2001, 2002, 2001, 2002, 2003],
'pop': [ 1.5, 1.7, 3.6, 2.4, 2.9, 3.2]
}
dicDf=DataFrame(df_dic)
dicDf
print(dicDf.state)
'''
0 Ohio
1 Ohio
2 Ohio
3 Nevada
4 Nevada
5 Nevada
Name: state, dtype: object
'''
칼럼으로 접근하여 데이터 타입 확인하기
pop이라는 columns(key) 값은 내장 함수의 영향으로 메소드 타입이 출력된다.
따라서 dicDf[’키’] 값으로 접근하는 방법을 사용하자
print(type(dicDf.state)) # <class 'pandas.core.series.Series'>
print(type(dicDf.year)) # <class 'pandas.core.series.Series'>
print(type(dicDf.pop)) # <class 'method'> 내장 함수 때문에 메소드 타입으로 나옴
print(type(dicDf['pop'])) # <class 'pandas.core.series.Series'>
리스트 길이 만큼 = 행 크기
키 값 개수 = 열 크기
# 리스트 길이 동일하게 맞춰줘야 함!
data1 = {
'name' : ['James', 'Tom', 'Jane', 'Peter'],
'address' : ['NY', 'Texas', 'NY', 'LA'],
'age' : [33, 44, 55, 66]
}
df1 = DataFrame(data1)
df1
2. random 모듈 사용하여 만들기
reshape() 으로 데이터 프레임을 2차원으로 만들자
columns, index, values를 지정하여 만들기
# 2. random 모듈 사용
df2 = DataFrame(np.random.randint(10,100,16).reshape(4,4),
columns=list('abcd'),
index=list('abcd'))
df2
shift + tab ⇒ dataframe 미리 확인하기
dataframe의 columns 값을 모두 수정하자
원본에 바로 반영됨
# 컬럼값들을 다 수정.. columns
df2.columns = ['one', 'two','three','four']
df2
날짜 생성
판다스가 가지고 있는 장점 중 하나가 시계열 데이타 처리를 잘 해 준다.간단히 날짜만 생성해보고 인덱스로 지정하는 것까지 해보자
시계열 데이터 만들기
- date_range
# frequent
dates = pd.date_range('20200101', periods=10) # 2020년 1월 1일부터 시작하여 10일동안 유지
dates
'''
DatetimeIndex(['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04',
'2020-01-05', '2020-01-06', '2020-01-07', '2020-01-08',
'2020-01-09', '2020-01-10'],
dtype='datetime64[ns]', freq='D')
'''
시계열 데이터를 인덱스로 설정
datedf = DataFrame(np.random.randn(10,4), index=dates, columns=list('ABCD')) #10행 4열, 시계열 데이터 dates
datedf
3. CSV 파일을 활용해서 dataframe 생성하기
to_excel, to_scv
# 3. CSV 파일 읽어서 데이터 프레임 생성
df3 = pd.read_csv('../dataset/tips.csv')
df3
tips.csv 파일은 실제 미국의 한 레스토랑에서 제공하는 고객의 축소화 된 정보
tip을 결정하는 요인이 칼럼으로 구성되어 있음 ⇒ 지불 금액에 대한 팁 금액이 정해지는 관례!!
모든 데이터가 칼럼 간 관계가 있지는 않다
팁 금액의 가장 큰 요인으로 작용하는 전체 지불 금액 칼럼과 sub 요인 칼럼을 맞춰보자.
데이터 분석하기 전에 칼럼의 상관 관계에 대한 가설을 세워 증명해보자
ex) 흡연하는 남성! 두 개의 컬럼을 조합하기
- 데이터 이해하여
- 잘못된 데이터 추출을 방지하고
- 시간 낭비를 없애자
좋은 데이터가 노출되면 기업의 자산이나 정보가 노출되고 예민한 부분으로 작용할 수 있다.
tips.csv 에서 day 칼럼에 목요일은 없다는 것을 알기 때문에 주말 운영 레스토랑인 것을 알 수 있다.
✍️
엑셀 데이터는 옵션이 많고 용량이 커서 상대적으로 가벼운 csv를 사용한다.
공공데이터로 올라오는 대부분 데이터가 CSV나 Json 으로 제공된다.
'Python > 데이터 분석' 카테고리의 다른 글
[DataFrame] DataFrame - 조회 함수 (0) | 2022.04.02 |
---|---|
[DataFrame] DataFrame - 구조 확인 속성 (0) | 2022.04.02 |
[pandas] pandas - Series (0) | 2022.04.02 |
[pandas] pandas - Series, DataFrame (0) | 2022.04.02 |
[Numpy] Numpy 배열의 통계함수 (0) | 2022.04.02 |
댓글