티스토리 뷰
728x90
pandas
데이터 분석을 위한 고수준의 자료 구조와 데이터 분석 도구를 제공하는 패키지
설치
pip install pandas
제공하는 자료 구조
- Series: 열이 1개인 데이터 구조
- DataFrame 열이 1개 이상인 데이터 구조
Series
index와 value 1개를 가지는 자료 구조
생성
Series(데이터, index = None, dtype = None, copy = False)
- 데이터는 python의 list, set, dict와 numpy의 ndarray가 가능
- index는 데이터를 가리키는 이름으로 list나 set 그리고 ndarray를 대입하면 0부터 시작하는 숫자 인덱스가 자동으로 생성되고 dict를 설정하면 key가 index가 된다.
- index 옵션에 직접 인덱스를 대입해서 생성하는 것이 가능
- dtype은 데이터 1개의 자료형으로 설정하지 않으면 pandas가 추론을 하고 직접 설정하면 그 자료형으로 생성된다.
- Series는 numpy의 1차원 배열과 동일한 구조
- copy를 True로 설정하면 데이터를 복제해서 생성하고 False를 설정하면 참조를 가져와서 생성
price = pd.Series([1000,3000,2000,4000])
print(price)
print(price[1])
#실행 결과
0 1000
1 3000
2 2000
3 4000
dtype: int64
3000
Index와 Values 속성
- index 속성을 호출하면 인덱스를 numpy의 ndarray로 리턴하고 values 속성을 호출하면 값들을 numpy의 ndarray로 리턴
- 딥러닝은 기본적으로 numpy의 ndarray를 가지고 수행. 가지고 있는 데이터가 pandas의 자료구조이면 values 속성을 호출해서 numpy의 ndarray를 가지고 호출해야 한다.
- index 속성을 이용해서 직접 인덱스 설정이 가능
- Series와 Series의 연산은 인덱스를 기준으로 한다. (동일한 인덱스가 없으면 연산을 할 수 없다.)
s1 = pd.Series([100,200,300, np.nan], index=["사과", "배", "한라봉", "천혜향"])
s2 = pd.Series([100,200,300, 500], index=["사과", "한라봉", "천혜향", "무화과"])
print(s1+s2)
#결과
무화과 NaN
배 NaN
사과 200.0
천혜향 NaN
한라봉 500.0
dtype: float64
# 한 쪽에만 존재하거나 np.nan인 데이터가 있으면 결과가 np.nan이 된다.
하나의 데이터를 접근
Series[인덱스]를 사용
numpy와 동일한 형태로 연산을 수행하고 numpy의 함수 사용 가능
numpy의 1차원 배열과 Series의 차이는 index의 여부
DataFrame
- 인덱스를 가진 테이블 형태의 자료구조
- 관계형 DB의 테이블과 유사하지만 인덱스를 직접 설정할 수 있다는 것이 차이점
- 직접 생성하는 경우는 dict를 이용하는 경우가 많다. 이때 dict의 키가 컬럼(열의 이름)이 되고 값이 셀의 내용이 된다.
- index: DataFrame의 index를 리턴하고 설정할 수 있는 속성
- columns:
source = {
"code":[1,2,3,4],
"name": ["봄", "여름", "가을", "겨울"],
"age": [22,23,34,21]
}
df = pd.DataFrame(source)
print(df)
#결과
code name age
0 1 봄 22
1 2 여름 23
2 3 가을 34
3 4 겨울 21
head, tail
head와 tail 함수를 이용해서 앞에서 또는 뒤에서 몇 개의 데이터를 추출할 수 있다. (default값은 5개)
#위에서 생성한 DataFrame 사용
print(df.tail(2))
#결과
code name age
2 3 가을 34
3 4 겨울 21
info()
데이터 프레임의 개요를 리턴
#위에서 생성한 DataFrame 사용
print(df.info())
#결과
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 code 4 non-null int64
1 name 4 non-null object
2 age 4 non-null int64
dtypes: int64(2), object(1)
memory usage: 228.0+ bytes
None
[python] sklearn, pandas(2)
sklearn CMD창에 입력 pip install scikit-learn scikit-learn: machine learning in Python — scikit-learn 1.4.0 documentation Model selection Comparing, validating and choosing parameters and models. Applications: Improved accuracy via parameter tuning A
growingegg.tistory.com
728x90
'python' 카테고리의 다른 글
[python] numpy(1) (0) | 2024.02.13 |
---|---|
[python] sklearn, pandas(2) (1) | 2024.02.13 |
[python] 예외 처리 (1) | 2024.01.23 |
[python] 가상 환경 만들기(windows) (0) | 2024.01.18 |
파이썬과 MySQL 연동 (0) | 2024.01.11 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 코딩테스트
- 위니브
- dataframe
- Python
- 인프런강의
- 파이썬
- 오블완
- 인프런
- 백준
- numpy
- 더오름
- 알고리즘
- 위니브엠베서더
- SSAFY
- 웹개발
- 제주코딩베이스캠프
- 인프런강의후기
- PANDAS
- 웹프로그래밍
- 알고리즘이론
- 전자회로
- django
- SSAFYcial
- ssafy기자단
- 웹
- 생성형 AI
- 프로그래머스
- 티스토리챌린지
- 백준알고리즘
- it도서큐레이션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함
250x250