안녕하세요 독학코딩입니다. 오늘은 파이썬 패키지 중 pandas를 배워보겠습니다. pandas는 파이썬 데이터 분석, 처리에서 정말 많이 쓰이는 패키지로 엑셀 스프레드시트를 생각하시면 쉽게 이해하실 수 있으실것 같습니다. 우리는 여태까지 1차원의 데이터 구조만을 다루었었습니다. 파이썬의 list, tuple, dict 모두 1차원 데이터 구조입니다.
그런데 이제 pandas를 통해서 2차원의 데이터구조를 만들고 다룰 수 있게 될것입니다. 그래서 pandas는 기초적이지 중요한 패키지 중 하나입니다. 판다스는 기본적으로 엑셀과 같다는 말을 했듯이 판다스의 기본적인 형태는 아래와 같습니다.
많이 보던 모양이죠? pandas에선 2가지 형태의 데이터 구조, series(1차원)와 Dataframe(2차원)을 다루는데 각각의 column은 pandas의 series입니다. 그 series들이 모여서 스프레드시트처럼 되면 그것이 pandas의 Dataframe(2차원)이 되는 것입니다.
1. Series 생성 (객체 생성)
여러 개의 series가 모여서 Dataframe이 된다고 했으니 series부터 만들어 보겠습니다. 파이썬 패키지를 사용하려면 가장 먼저 패키지를 내 파이썬 코드에 import 해주셔야 합니다.
import pandas as pd
as pd는 pandas를 단축어로 쓰기 위해 쓴겁니다. 필수는 아닙니다.
import pandas as pd
list_age = [23, 24, 25]
ages = pd.Series(list_age, name="Age")
print(list_age)
print(ages)
출력해주시면 결과가 상당히 다르다는게 보이실겁니다. 판다스에서 series를 만드는 방법은 어렵지 않습니다. 하지만 실제로는 이렇게 일일히 series로 만들지는 않습니다.
list_name = ["홍길동", "김아무개", "독학코딩"]
list_region = ["서울", "서울", "인천"]
list_age = [23, 24, 25]
df = pd.DataFrame(
{"Name": list_name,
"Region": list_region,
"Age": list_age
}
)
print(df)
이렇게 리스트 자체로 Dataframe을 만들어도 문제는 없습니다. 이제 DataFrame을 다루는 방법에 대해서 배워볼까요?
2. 판다스 데이터 확인하기
우리는 여기서 굉장히 작은 크기의 DataFrame을 다루고 있지만, 수 천개의 column과 수 천개의 row를 다룬다고 상상해주시면 좋을 것 같습니다. 위에서 작성한 DataFame은 지우지 마시고 따라와 주세요.
print(df.head(2)) #데이터 프레임의 상단 몇개만을 확인하고 싶다면 .head(int)를 사용하시면 됩니다.
print(df.tail(2)) #하단의 몇 개만 확인하고 싶다면 .tail(int)를 사용하시면 됩니다.
print(df.columns) #df의 컬럽 정보를 알고 싶을때
print(df.index) #이번 예제에서는 index가 없지만 만약 index가 있을때 index에 대해서 알고 싶을 땐
print(df.to_numpy()) #데이터 전체를 우리가 익숙한 형태인 리스트의 배열로 만드는 방법
print(df.describe()) #DataFrame의 빠른 통계 요약을 보여줍니다. 수로 되어 있는 series에 대해서만 가능
print(df.T) #데이터프레임을 반전 시키는 방법, column과 index를 서로 바꾸는 기능
print(df.sort_values(by="Name")) #특정 열로 df를 정렬하는 방법
3. 판다스 데이터 선택하기
- column과 row를 알고 있을때
print(df["Name"]) #특정 column만 보고 싶을때
print(df[0:2]) #특정 row만 보고 싶을 때
print(df.loc[1]) #loc을 이용해서도 row를 조정할 수 있습니다. [0:1] 이런식도 가능
print(df.loc[:, ["Region", "Name"]]) #특정 column을 원하는 순서대로
print(df.loc[1:2, ["Region", "Name"]]) #특정 column을 원하는 순서대로 + 특정 row만
print(df.loc[1, "Name"]) # 특정 row, 특정 column의 값을 가져올때
print(type(df.loc[1, "Name"]))
- column과 row를 모를때
print(df.iloc[2]) #3번째 row 값
print(df.iloc[1:3, :]) #1~3 사이 row값
print(df.iloc[:, 2]) #3번재 column 값
print(df.iloc[:, 1:2]) #1~2사이 column 값
print(df.iloc[1:3, 0:1]) #row 1~3사이, column 0~1사이 값,
print(df.iloc[[1, 2], [0, 2]]) #row 2, 3번째 와 column 1, 3번째 값
print(df.iloc[2,2]) #3번째 row, 3번째 column 값
- 조건부 데이터 선택
print(df[df["Age"] > 23]) #Age에서 23 초과의 값만
print(df[df["Name"].isin(["독학코딩", "김아무개"])]) #df["Name"] 중 "독학코딩"과 "김아무개"를 포함하는 값
4. 판다스 데이터 설정하기
df["Sex"] = ["male", "male", "female"] #새료온 column과 row 값 설정
df.at[1, "Name"] = "박아무개" #특정 row, 특정 column 값 설정
df.iat[2,1] = "대전" #3번째 row, 2번째 column 값 설정
print(df)
오늘은 파이썬의 판다스에 대해서 배웠습니다. 기초적인거만 배웠지만, 이것만으로도 지금은 충분할 것 같습니다. 판다스는 훨씬 더 많은 기능을 제공하니 궁금하신 분들은 공식 홈페이지를 참고 해주시면 될것 같습니다.
'Python > Python 패키지' 카테고리의 다른 글
Python 파이썬 랜덤 숫자, 랜덤 문자, random() 다루기 (0) | 2022.01.05 |
---|---|
Python 파이썬 엑셀 다루기, pandas 패키지 (0) | 2022.01.04 |
Python 파이썬 Math 올림, 내림, 반올림 (0) | 2021.12.10 |
Python 파이썬 datetime 기초 (0) | 2021.12.06 |
Python 파이썬 패키지 설치 방법 (0) | 2021.11.30 |
댓글