🧑💻12/16 슬기로운 코딩생활
파이썬 예제 160번 ~ 180번ㅠㅠ
판다스 기본개념 배우기
🖊️공부기록
▶ for range
- range(100)은 0 부터 99까지 숫자 리스트를 만듭니다. 이를 for문과 함께 사용하면 range로 생성한 모든 숫자를 하나씩 화면에 출력합니다.
for iin range(100): print(i)
- range의 세번 째 파라미터는 증감폭을 결정합니다.
for x in range(2002, 2051, 4) print(x)
▶파이썬 절대값 함수
파이썬의 절대값함수는 built-in 함수. 즉, 파이썬 내장 함수 입니다.
함수의 이름과 매개변수는 아래와 같습니다.
abs(x)
절대값을 구할때 abs라는 이름의 함수를 사용합니다.
➡️판다스(pandas) 기본 사용법
1. 시작하기
pandas 를 사용하기 위해서 모듈을 임포트(import) 합니다. 임포트를 할 때에는 pandas 라는 네임스페이스를 그대로 사용해도 되지만 간결성을 위해 pd 라는 축약된 이름을 관례적으로 많이 사용합니다. pandas 외에도 배열 구조나 랜덤 값 생성 등의 기능을 활용하기 위한 numpy(np) 와 그래프를 그리기 위한 matplotlib(plt) 패키지들도 함께 import 해줍니다.
2. 데이터 오브젝트 생성하기
데이터 오브젝트는 ‘데이터를 담고 있는 그릇’.
pandas 에서 자주 사용하시게 될 데이터 오브젝트는 Series 와 DataFrame 이 있습니다. 이 두 종류의 ‘그릇’의 차이점은 데이터를 담는 그릇의 ‘형태’가 다른데요.
쉽게 말하자면 Series 는 1차원 배열로, DataFrame 은 2차원 배열로 데이터를 담고 있다고 생각하시면 됩니다.
DataFrame
-DataFrame 을 만들기 위해서는 pd.DataFrame()
라는 클래스 생성자를 사용하며, 행에 해당하는 기준(첫번째 기준)인 인덱스를 index
라는 인수로 전달하며, 열에 해당하는 기준(두번째 기준)인 컬럼을 columns
이라는 인수로 전달합니다.
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
-DataFrame 을 생성하는 또 다른 방법으로 여러 종류의 자료들이 담긴 딕셔너리(dict)를 넣어주어 만들 수 있습니다. 이 때에는 dict 의 key 값이 열을 정의하는 컬럼이 되며, 행을 정의하는 인덱스는 자동으로 0부터 시작하여 1씩 증가하는 정수 인덱스가 사용됩니다.
DataFrame 의 컬럼들은 각기 특별한 자료형을 갖고 있을 수 있습니다. 이는 DataFrame 내에 있는 dtypes 라는 속성을 통해 확인 가능합니다. 파이썬의 기본적인 소수점은 float64 로 잡히고, 기본적은 문자열은
str이 아니라 object 라는 자료형으로 나타납니다.
3.데이터 확인하기 (Viewing Data)
DataFrame 에 들어있는 자료들을 확인하기 위해 맨 앞이나 뒤의 자료들 몇 개를 알아보고 싶다면 .head()
와 .tail()
메소드를 사용하면 됩니다. 상위 또는 하위 5 개의 자료를 보여줍니다. 더 적게 혹은 많이 보고 싶다면 메소드의 인자로 보고싶은 데이터의 개수를 숫자를 넣어주면 됩니다.
DataFrame의 인덱스를 보려면 .index
속성을, 컬럼을 보려면 .columns
속성을, 안에 들어있는 numpy 데이터를 보려면 .values
속성을 통해 확인하면 됩니다.
.describe()
메소드는 생성했던 DataFrame 의 간단한 통계 정보를 보여줍니다. 컬럼별로 데이터의 개수(count), 데이터의 평균값(mean), 표준 편차(std), 최솟값(min), 4분위수(25%, 50%, 75%), 그리고 최댓값(max)들의 정보를 알 수 있습니다.
.T
속성은 DataFrame 에서 index 와 column 을 바꾼 형태의 DataFrame 입니다. 메소드가 아니라 미리 계산되어 저장되어 있는 ‘속성’이라는 점을 다시 강조합니다.
그리고 .sort_index()
라는 메소드로 행과 열 이름을 정렬하여 나타낼 수도 있습니다. 정렬할 대상 축을 결정할 때에는 axis
를 이용합니다. axis=0
라고 써주면 인덱스를 기준으로 정렬하며(기본값), axis=1
라고 써주면 컬럼을 기준으로 정렬합니다. 정렬의 방향에 대한 파라미터는 ascending
를 이용합니다. ascending=True
는 오름차순 정렬을 하겠다는 것이고(기본값), ascending=False
는 내림차순 정렬을 하겠다는 의미입니다. 다음은 컬럼에 대하여 내림차순 정렬을 하는 예제입니다.
4.데이터 선택하기 (Selection)
데이터프레임 자체가 갖고 있는 []
슬라이싱 기능을 이용하는 방법입니다. 특정 ‘컬럼’의 값들만 가져오고 싶다면 df['A']
와 같은 형태로 입력합니다. 이는 df.A
와 동일합니다. 리턴되는 값은 Series 의 자료구조를 갖고 있습니다.
데이터프레임 자체가 갖고 있는 슬라이싱은 df[컬럼명]
**,** df[시작인덱스:끝인덱스+1]
**,** df[시작인덱스명:끝인덱스명]
의 형태로 사용할 수 있습니다.
라벨의 이름을 이용하여 선택할 수 있는 .loc
를 이용할 수도 있습니다.
첫 번째 인덱스의 값인 df.loc[dates[0]]
외에도 df.loc['20130101']
또는 df.loc['2013-01-01']
처럼 값을 직접 입력해도 잘 작동합니다.
위치를 이용하여 선택하기: **.iloc**
여기서 인덱스 번호는 python 에서 사용하는 인덱스와 같은 개념으로 이해하시면 됩니다. 인덱스 번호는 0 부터 시작하므로, 첫 번째 데이터는 인덱스 번호가 0 이고, 두 번째 데이터는 인덱스 번호가 1 이라는 뜻입니다.
명시적으로 행이나 열 선택 인자에 :
슬라이스를 전달하면 행 또는 열 전체를 가져올 수도 있습니다.
조건을 이용하여 선택하기
특정한 열의 값들을 기준으로 조건을 만들어 해당 조건에 만족하는 행들만 선택할 수 있는 방법이 있습니다. 다음은 A라는 열에 들어있는 값이 양수인 경우에 해당하는 행들을 선택하는 예제입니다.
5. 결측치 (Missing Data)
여러가지 이유로 우리는 데이터를 전부 다 측정하지 못하는 경우가 종종 발생합니다. 이처럼 측정되지 못하여 비어있는 데이터를 ‘결측치’라고 합니다. pandas 에서는 결측치를 np.nan
으로 나타냅니다.
결측치가 하나라도 존재하는 행들을 버리고 싶을 때는 dropna()
메소드를 이용합니다.
만약 결측치가 있는 부분을 다른 값으로 채우고 싶다면 fillna()
메소드를 이용하세요.
그리고 해당 값이 결측치인지 아닌지의 여부를 알고싶다면 isna()
메소드를 이용하면 됩니다. 결측치이면 True, 값이 있다면 False 로 나타납니다.
'국비교육 빅데이터 분석과정 수업일지' 카테고리의 다른 글
#6 미쳐버리겠네, 데이터분석 입문_day6😬 (0) | 2021.12.20 |
---|---|
#5 판다스 배우기, 데이터분석 입문_day5😣 (0) | 2021.12.17 |
#3 어려워도 꾸준히, 데이터분석 입문_day3 📋 (0) | 2021.12.16 |
#2 둘째 날, 데이터분석 입문_day2🖊️ (0) | 2021.12.15 |
#1 작은발자국, 데이터분석 입문_day1 😊 (0) | 2021.12.15 |