Pandas#1_pandas.Series
https://pandas.pydata.org/docs/reference/api/pandas.Series.html
pandas.Series
class pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)
One-dimensional ndarray with axis labels (including time series).
Labels need not be unique but must be a hashable type. The object supports both integer- and label-based indexing and provides a host of methods for performing operations involving the index. Statistical methods from ndarray have been overridden to automatically exclude missing data (currently represented as NaN).
Operations between Series (+, -, /, *, **) align values based on their associated index values– they need not be the same length. The result index will be the sorted union of the two indexes.
안녕하세요.
본격적으로 pandas를 공부하기에 앞서서 pandas를 사용하기 위해서 필요한 코드가 있습니다.
pip install pandas
import pandas 를 했다는 전제하에
pandas 홈페이지에 있는 예제부터 살펴보겠습니다.
1. pandas.Series()
>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> ser = pd.Series(data=d, index=['a', 'b', 'c'])
>>> ser
a 1
b 2
c 3
dtype: int64
1 : 변수 d 는 우리가 잘 알고 있는 dict 형식 구조입니다.
2 : data = 딕셔너리 변수
index = 키값도 index 에 넣을 수 있다.
위 예제를 조금 pandas.Series 가 어떤식으로 사용하는지 눈에 보이기 시작합니다.
여기서 어떤건 되고, 어떤건 안될까 라는 생각이 들죠?
제가 직접 해보겠습니다.
value 값을 리스트에 묶어서 넣어 봤습니다. list형식 그대로 출력되는걸 볼 수 있어요.
이제 그럼 Series 다음으로 중요한 pandas.DataFrame의 특징을 알아보도록 할게요
2. pandas.DataFrame
Series 랑 다르게 딕셔너리에 리스트를 넣어서 묶어도 column에 따로 추가 되는걸 볼수 있습니다.
이번엔 이름에 손흥민, 메시 ,호날두를 넣고 나이 , 소속을 넣어 봤습니다.
여기서 주의해야할건 index개수와 키 : 값 개수와 일치해야 오류가 안납니다.
columns에 딕셔너리 키값을 입력할 수도 있어요.
pd.DataFrame([값],columns=[키],index=[]) 구조도 사용할 수 있다는 걸 알게 된 셈이죠
각 특징들이 눈에 보이나요? 이제 메소드를 알아보러 가봅시다.
2 - 1) index
DataFame 구조의 데이터를 받았어요. 그러면 이게 총 행 갯수가 몇 개인지 궁금해질 때 index메서드를 사용합니다.
아까우리 df에 저장한 DataFrame을 가지고 해볼게요
위 코드처럼 index를 활용하면 인덱스가 몇개나 있는지 타입은 무엇인지 알 수 가 있겠죠?
df.index로 인덱스에 데이터를 넣어 봤습니다. 이처럼 정보를 불러 올 수도 있고, 여기에 인덱스 데이터를 넣을 수도 있다는 것을 알 수 있겠죠
2 - 2) columns
index와 마찬가지로 컬럼의 정보를 가지고 올 수 있으며, 데이터를 넣을 수 있습니다.
2 - 3) rename
df.rename(index={old:new})
df.rename(columns={old:new})
rename은 말그대로 교체할 수 있는 메서드이죠
아까는 df.index = ['가','나','다'] 전체를 변경했다면 '다'만 변경하고 싶을때 유용하죠
rename으로 다를 da로 이름을 name으로 교체해봤습니다. 어떤원리인지 이해가 가시죠
한가지 더 중요한게 있다면 저장하는 방법입니다.
df.rename하면 바꾼경우로 남아 있지 않습니다. 그때 필요한게 inplace 인데요. df.rename({old:new}, inplace= True)를 하면 df에 다시 저장하지 않아도 교체된 상태로 저장되어 있습니다.
2 - 4) set_index()
primary KEY를 아시나요? 중복을 없애기 가장 중요한 키죠
그 설정을 set_index()로 할 수 있습니다.
다음 포스트에는 헷갈리기 쉬운 iloc/loc에 대해서 공부할게요