티스토리 뷰

TIL

[Pandas] 사용법 익히기(1)

언코딩 2021. 1. 11. 22:10

❗알아야 할 기본 개념

# Series & DataFrame

-> pandas에서 자주 사용되는 데이터 오브젝트이다.

 

Q. 둘의 차이점은?

-> Series는 1차원 배열

-> DataFrame은 2차원 배열

 

-------------------------------------------------------------------

 

1. Series 이용해보기

Series의 주요 특징은 값의 인덱스가 같이 저장된다는 것이다. 

그래서 Series 객체 s를 생성한 다음, 출력해보면 위의 사진과 같이 0부터 5까지 6개의 인덱스와 함께 출력되는 것을 볼 수 있다. 값은 s를 생성할 때 안에 넣어준 리스트 값이 순서대로 나온 것이다.

 

 

 

 

 

 

2. DataFrame 이용해보기

 

1) 우선, date_range()를 사용하여 "20200105"부터 6일을 dates에 저장해주고, 출력한 모습이다.

 

 

2) 그 다음, DataFrame을 만든다.

 

*np.random.randn(x, y) 

-> 이것은 numpy의 random 모듈 중에 하나로, random.randn는 가우시안 표준 정규 분포에서 난수를 생성한다고 한다. 이때, x는 행(row), y는 열(col)을 나타낸다. 즉, 6 x 4 형태로 난수를 생성하라는 뜻

더보기

+ 그 밖의 random 모듈들 정리

np.random.randint  균일 분포의 정수 난수 1개 생성

np.random.rand  0부터 1사이의 균일 분포에서 난수 matrix array 생성

np.random.shuffle  기존의 데이터 순서 바꾸기

np.random.choice  기존의 데이터에서 sampling

np.unique 데이터에서 중복된 값을 제거하고 중복되지 않는 값의 리스트를 출력

np.bincount 발생하지 않은 사건에 대해서도 카운트

 

*index=dates

그리고 인덱스명을 위에서 저장한 dates 값으로 주었다.

 

* columns=list("ABCD")

마지막으로 열 각각에 붙을 이름을 A,B,C,D 라는 이름이 담긴 리스트로 주었다.

 

이렇게 만들어진 데이터프레임 df를 출력하면 다음과 같이 깔끔한 표가 나온다.

 

 

 

 

 

 

 

 

3.  DataFrame 생성하는 또 다른 방법: 딕셔너리(dict) 사용하기

 

이때는 dict의

key = 열 (column)

value = 행 (row)  이 된다.

 

 

 

여기서 궁금했던 게 '왜 여기서는 float32, float64, int32 이렇게 자료형 뒤에 숫자가 붙을까?' 였다.

사실 이 궁금증 때문에 구글링을 하다가 포스트를 하게 된 것이다..ㅎㅎ

아무튼 찾아보니, 뒤에 숫자는 bit를 나타내고, 어떤 것을 사용하느냐에 따라 메모리 사용량에 차이가 난다고 한다.

즉, float64를 사용했을 때 float32보다 연산 속도가 느려질 수 있다는 것이다. 대신, 그만큼 더 큰 수를 표현할 수 있다.

 

- 출력물에 얼마나 정밀한 결과가 필요한지

- 속도, 메모리가 문제 되지 않는지

 

이 두 가지를 잘 고려하여 상황에 맞게 사용하면 될 듯하다😊

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/09   »
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
글 보관함