모스카토

Pandas 기초 본문

파이썬

Pandas 기초

라리라밤 2021. 4. 30. 16:25

1. import

import pandas as pd
import numpy as np

보통 numpy를 pandas와 같이 import 한다.

 

2. float 데이터 range 정확하게 만들기

* 가끔씩 np.arange()를 이용해 float의 범위를 만들 때 0.00000000001 정도의 오차가 생길 때가 있다.

list(np.arange(f_start, f_end)/10)

f_start 에 시작할 float * 10 을 주고, 똑같이 f_end에 시작할 float * 10 을 준다.

np.arange()로 범위를 만든 후 /10을 해주면 np.arange의 미세한 오차를 수정할 수 있다.

 

3. DataFrame 생성

df = pd.DataFrame()
df = pd.DataFrame(columns = cols)
df = pd.DataFrame(data)
df = pd.DataFrame(data, columns = cols)

DataFrame을 생성하는 방법은 다양하다.

data : DataFrame으로 만들 데이터

cols : 컬럼명으로 사용할 데이터

컬럼만 넣어도 빈 DataFrame이 생성된다.

딕셔너리 형태의 데이터를 넣으면 키가 컬럼명으로, 값이  DataFrame으로 들어간다.

dic = {cols[i] : info_li[i] for i in range(len(cols))}

리스트 형태로 data와 cols가 있을 경우, 딕셔너리로 만들어서 DataFrame에 넣으면 편하다.

 

4. 컬럼 순서바꾸기

DataFrame에서 column 이름들을 리스트로 뽑아낸다.

cols = df.columns.tolist()

cols 를 원하는대로 변경 후 아래와 같이 df 변수에 다시 넣는다.

df = df[cols]

 

5. 데이터를 행으로 DataFrame에 입력하기 / 

df = df.append(data, ignore_index=True)

DataFrame에 데이터를 추가할 때 ignore_index=True값을 주면 추가된 값들의 인덱스가 기존 인덱스와 자연스럽게 연결된다.

또 추가하려는 데이터와 기존 DataFrame의 컬럼 수가 달라도 빈 곳을 nan값으로 채우고 에러가 나지 않는다.

df.insert(loc, column, value)

loc 자리에 원하는 컬럼인덱스를 입력한다. column에는 컬럼명, value에는 값을 입력한다.

예를들어 (3, '컬럼명', '값') 을 입력하면 4번째 컬럼자리에 컬럼명과 값이 삽입되고 원래 4번째 컬럼부터 뒤로 밀린다.

insert는 inplace=True나 df=df.insert()를 하지 않아도 df자체가 변경된다.

 

6. 행이나 열 삭제하기

df.drop(index)
df.drop(column, axis=1)

행을 삭제할 경우 해당 index를 입력한다. axis의 기본값은 0이다.

열을 삭제할 경우 해당 column을 입력한다. axis=1을 준다.

df 변수에 다시 넣어야 삭제한 DataFrame이 유지된다.

 

7. loc 와 iloc

df.loc[1]
df.iloc[0]
df.loc[0, ['col1', 'col2']]
df.iloc[0, 2:4]

대괄호 안에 [행, 열]을 지정해서 데이터를 가져온다. 행만 줘도 된다.

loc는 행과 열의 인덱스(숫자)로는 데이터를 가져올 수 없다. 인덱스명과 컬럼명으로 데이터를 가져올 수 있다.

즉, 인덱스가 문자열일 경우 위 코드의 0자리에 해당 문자열을 넣어야 한다.

-> df.loc['인덱스', [ 'col1', 'col2' ] ]

iloc는 정수로 행, 열의 인덱스를 지정하여 데이터를 가져온다. 슬라이싱도 가능하다.

 

8. DataFrame 파일로 저장하기 

df.to_csv( '경로/파일명', sep = '', encoding = '')
df = pd.read_csv( '경로/파일명', sep='', encoding='')

csv 외에도 다양한 파일형태로 저장할 수 있다. sep은 구분자, encoding은 인코딩방식을 주는 옵션이다. 필요에 따라 사용하고 생략해도 무방하다.

아래 코드는 csv로 저장한 파일을 다시 DataFrame으로 불러오는 것이다. 

csv로 저장할 때 사용한 sep이 있다면 같은 sep으로 csv를 불러와야 DataFrame이 깨지지 않는다.

 

9. 참고

DataFrame을 변경한 후 변경사항을 유지하려면 아래와 같이 다시 저장하거나 inplace=True라는 값을 줘야한다.

df2 = df.copy()
df.drop(0, inplace=True)

하지만 위의 방법 없이 그냥 코드만 쳐도 df에 저장되는 경우가 있으니 주의해야 한다.

'파이썬' 카테고리의 다른 글

파이썬 자료형  (0) 2020.08.25
파이썬 시작  (0) 2020.08.25
Comments