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) (1) | 2024.02.13 |
|---|---|
| [python] sklearn, pandas(2) (1) | 2024.02.13 |
| [python] 예외 처리 (2) | 2024.01.23 |
| [python] 가상 환경 만들기(windows) (0) | 2024.01.18 |
| 파이썬과 MySQL 연동 (0) | 2024.01.11 |
Comments