데이터 분석을 위한 파이썬 기초(pandas)

추차차·2022년 6월 6일
1

파이썬 기초

목록 보기
1/3
post-thumbnail

Python

전처리 할 때 알아두면 좋은 함수

  • split(" ") => 괄호 안에 있는 특정 문자 혹은 기호에 따라서 나누어 주는 함수이다.
  • ? => 함수뒤에 물음표를 붙이면 도움말을 의미이다.
  • ?? => 물음표 두개를 붙이면 소스코드를 보여준다

Pandas

  • 라이브러리 불러오기
import pandas as pd
import numpy as np

위와 같이 라이브러리를 불러오고 대부분 numpy와 함께 쓰인다.


  • 데이터 프레임 생성
df = pd.DataFrame()

  • 타입 알아보기
print(type(df['칼럼명']))

내가 어떤 타입을 알기 위해서는 위의 코드를 통해 알아볼 수 있다.


  • 칼럼 추가하기
df['칼럼명']=['내용1','내용2',내용3',...]

이런 방법으로 새로운 칼럼을 추가할 수 있다.


  • 칼럼값 변경하기
    만약 데이터프레임에 Nan값이 들어있는 칼럼을 추가했다고 가정해보자
df['food']=['rice','noodle','fruit', np.nan, 'something']

그래서 이 칼럼을 나는 없애고 싶다
그러면 다음과 같이 하면 된다.

df=df.drop('food', axis=1)

axis = 0 이라는 것은 행을 의미하고 1은 열을 의미한다.
혹은 조금더 직관적으로

df=df.drop(columns='food')

라고도 작성을할 수 있다.


데이터 요약하기
데이터를 다루려면 우선 데이터의 대략적인 정보를 파악하는 것이 도움이 된다.

df.info()

위의 코드를 사용하면 우리는 데이터프레임의 기본 정보를 볼 수 있는데,
1. 칼럼명
2. 각 칼럼의 데이터 타입
3. 칼럼 개수
4. 각 칼럼별 행의 개수
를 알 수 있다

df.shape

위를 사용하면 데이터 프레임의 크기를 출할 수 있다

df.dtypes
df.index
df.values

위의 코드들을 사용하면 각각
데이터 프레임의 데이터 타입들만 따로 보거나,
데이터 프레임의 인덱스 길이,
데이터 프레임에 들어있는 값들을 array의 형식으로 데이터 프레임을 살펴볼 수 있다.

df.describe()

위의 코드를 통해 데이터 프레임의 요약 정보를 알 수가 있다.
수치형 데이터의 기술 통계 값을 볼 수 있다는 것이다.

df.describe(include='object')

범주형 데이터의 기술 통계값을 보기 우해서는 위와 같은 코드를 사용하면 된다.

  • 칼럼명으로 데이터 불러오기
df['칼럼명']

위를 이용하면 칼럼명에 해당하는 데이터를 가지고 올 수 있다.

df[['칼럼명']]

데이터프레임의 형태로 칼럼의 데이터를 불러오기 위해서는 [[]] 를 사용하면 된다.

두개 이상의 칼럼명을 가지고 오기 위해서는 아래와 같이 작성하면 된다.

df[['칼럼명1','칼럼명2']]

꼭 리스트로 묶어서 호출하자!

  • 행렬을 기준으로 데이터 가져오기
    df.loc[0]
    을 사용하면 인덱스 명칭으로 데이터를 가져올 수 있다.
    당연히 인덱스 명칭으로 가져오는 것이기 때문에 아래와 같은 코드들도 가능하다.
    df.loc[0:2] #0에서 2 까지의 인덱스에 해당하는 데이터 추출
    df.loc[[1,2,3]] #1,2,3번째의 데이터를 가지고 온다. 여러개이기 때문에 리스트로 묶어서 적어주자!
    여기서 주의할 점은 인덱스 명칭으로 가져오는 것이기 때문에 0,1,2번에 해당하는 데이터를 가지고 오는 것이라는 점이다.
    명칭으로 가져오는 방법 말고도 인덱스 순서를 통해 가져오는 방법은 아래와 같다.
df.iloc[0:2]

이러면 인덱스 명칭과는 다르게 0,1번째의 데이터를 가지고오게 될 것이다.

만약 내가 어떤 특정 칼럼에 있는 값들을 인덱스 번호로 사용하고 싶다면

df2=df.set_index('칼럼명')

을 이요하여 설정할 수 있다.
이러면 이 칼럼속 데이터가 인덱스 번호가 된다. 이를 위에서 공부한 내용과 합쳐 보면 다음과 같이 활용할 수 있다

df2.loc[['칼럼명1의 첫번째 데이터', '칼럼명1의 두번째 데이터']]
df2.loc['칼럼명1의 첫번째 데이터': '칼럼명1의 두번째 데이터']

이를 Fancy indexing이라고 부른다.

  • 행과 열을 함께 가져오기
df.loc[0,'칼럼명']

칼럼명 속 첫번째 데이터를 가지고 올 수 있다.

df.loc[[0,1],'칼럼명']

을 이용하면 칼럼명 속 0과 1번째 데이털르 가지고 오게 된다.

여러 데이터를 동시에 가져오려면

df.loc[[0,1],['칼럼명1','칼럼명2']]

을 통해서 가지고 올 수 있다.

  • 활용하기

위와 같은 표에서 만약 비타 혹은 vita라는 단어가 포함된 애들을 찾아주고 싶다면

df['약품명'].str.contains('비타|vita')

라고 해주면 될 것이다.
문제는 파이썬은 대소문자를 구별하기 때문에 V가 들어가면 캐치르 하지 못한다.
그렇기 때문에 전부 소문자로 바꿔주고 코드를 돌리면 된다. 소문자로 바꾸는 코드는 다음과 같다.

df['약품명'].str.lower() #소문자로 만들기
df['약품명'].str.upper() #대문자로 만들기
  • 파생변수 만들기
df['약품명_소문자']=df["약품명"].str.lower()

를 이용하면 약품명_소문자라는 칼럼이 생기는 동시에 그안에 소문자로 된 약품명을 소문자로 바꾼 데이터들이 들어가게 될 것이다.

예시를 하나더 들자면

df[df["약품명_소문자"].str.contains("비타|vita") & (df['가격'] > 2000)]

를 이용하면 약품명 소문자에서 비타 혹은 vita가 들어가면서 가격이 2000이상인 데이터들을 데이터 프레임의 형태로 추출할 수 있다.

  • 정렬하기
df.sort_values(by=["가격","약품명"], ascending=[False,True])#(x, y, 0)이면 역순으로 출력하게 된다

을 이용하면 가격순으로 내림차순 정렬을 하고 가은 가격이면 약품명의 글자순으로 정렬을 시키는 코드이다.

  • 파일로 저장하기
df.to_csv("파일명.csv",index=False)

을 이용하면 csv 파일로 저장을 할 수 있고, index=False를 넣으면 인덱스 칼럼을 포함하지 않는다.

pd.read_csv("판다스 실습.csv")

반대로 이를 이용해서 csv를 불러올 수 있게된다.

profile
데이터 꿈나무 (시리즈로 들어가면 글이 정리되어있습니다!)

0개의 댓글