0️⃣ Pandas Series 생성하기
- 판다스는 테이블 형태의 데이터를 다루는 라이브러리입니다. 그래서 헷갈릴 때는 엑셀 테이블을 생각하면 도움이 되더라구요.
- 판다스 시리즈Series는 칼럼(열) 1개짜리 테이블이라고 생각하면 됩니다.
- 시리즈를 생성할 때는 들어갈 data, index를 지정해주어야 합니다. name으로 이름을 정할수도 있습니다.
참고로 Series 의 대소문자는 꼭 맞게 입력해주어야 합니다!
- 출력해보면, 아래와 같이 index, data가 입력한 순서대로 세로로 출력됩니다.
import pandas as pd
series_1 = pd.Series(
data = ['고양이', '강아지', '햄스터'],
index = ['a', 'b', 'c'],
name = '귀여운 동물 친구들'
)
1️⃣ Pandas DataFrame 생성 (1) - 딕셔너리 형태로 생성하기
- 판다스 데이터프레임DataFrame은 칼럼(열) n개짜리 테이블이라고 볼 수 있습니다.
- 데이터프레임을 생성하는 첫번째 방법은 딕셔너리를 pd.DataFrame으로 감싸는 형식으로 생성해주는 방법입니다.
- 이때 key값들은 칼럼명이 되고, 각 value들은 칼럼별 값들로 들어가게 됩니다.
다시말해 key-value 한 쌍이 데이터프레임에서 한 칼럼(열) 입니다.
- 여기서 value로 들어가는 리스트들의 길이가 모두 같아야 합니다. 길이 다른 리스트가 하나라도 있으면 에러가 떠요.
df_1 = pd.DataFrame({
'a': [1,2,3],
'b': [10,20,30],
'c': [10,100,1000]
})
- 리스트 대신 pd.Series로 넣어줘도 문제없습니다.
- 만약 Series 길이가 다른 리스트의 길이와 다르다면, 값이 들어갈 index를 지정해서 빈곳을 두고 만들 수도 있습니다.
dict = {
'a': [1,2,3],
'b': pd.Series([10,20,30]),
'c': pd.Series([10,100,1000])
}
df_2 = pd.DataFrame(dict)
dict = {
'a': [1,2,3],
'b': pd.Series([20,30], index=[2,3]),
'c': pd.Series([10], index=[1])
}
df_3 = pd.DataFrame(dict, index=[1,2,3])
2️⃣ Pandas DataFrame 생성 (2) - 리스트 형태로 생성하기
- 두번째 방법은 리스트 1~3개로 데이터프레임을 생성하는 방법입니다.
- 1번째 리스트: 셀에 들어갈 값들을 이중리스트로 넣어야 함
- 2번째 리스트: 인덱스(행) 이름으로 들어감
- 3번째 리스트: 칼럼(열) 이름으로 들어감
- 1번째 이중리스트 안의 내부리스트 각각이 하나의 행이 됩니다. 즉, 위에서 딕셔너리로 만들 때랑 반대라고 볼 수 있네요.
- 참고로 2, 3번째 리스트를 지정하지 않아도 데이터프레임은 생성됩니다.
df_4 = pd.DataFrame(
[[1,2,3], [10,20,30], [10,100,1000]], # 들어갈 값들
['a','b','c'], # 인덱스 이름
['x','y','z'] # 칼럼 이름
)
3️⃣ Pandas DataFrame 생성 (3) - np.array 넣어서 생성하기
- 위 두번째 방법의 리스트 대신, numpy array가 들어가는 방법입니다.
- 마찬가지로 np.array 하나가 데이터프레임의 행 하나로 들어갑니다.
np.array를 리스트나 다른 데이터타입으로 변환할 필요없이 바로 데이터프레임을 만들 수 있다는 점이 좋은 부분이네요.
import numpy as np
df_6 = pd.DataFrame(
np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
columns=['a','b','c']
)
df_6