[pandas] 1.0 주요 업데이트 내용

파이썬에서 거의 엑셀급의 위치에 있는 데이터 분석 라이브러리 pandas가 1.0으로 업데이트 됐다. 2010년 1월 29일자로.

이전 버전이 0.25였는데 자신있게 1.0으로 내놓은 만큼 그동안 있었던 자잘한 버그들은 웬만큼 잡아놓은 모양이다. 자세한 건 공식 릴리즈 노트를 읽어보자.

난 애초에 아주 기본적인 기능만 가져다가 써서 아주 큰 변화는 없을 거 같긴 한데, 이런 영상이 있길래 간략히 내용을 요약해본다.

1. 문자열 데이터 string, bool으로 데이터 타입 세분화

이전 버전의 pandas에서는 문자열, 날짜 형식 등을 그냥 object로만 인식했다. 그러나 1.0부터는 string이나 bool로 지정할 수 있어서 문자열을 다루기 수월해졌다.

2. select_dtypes()

select_dtypes()를 활용하면 특정 데이터 타입만 바로 뽑아낼 수 있다. 예를 들어 df.select_dtypes("string")이라고 하면 데이터프레임에서 문자열로 이루어진 컬럼만 뽑아준다.

3. pandas.NA

데이터 유형에 상관 없이 결측치, NA값을 처리하도록 했다. (numpy 같은 패키지와 충돌이 없어야 하므로 아직은 실험적인 수준이라고 한다.)

4. convert_dtypes()

위와 연결되는 내용이긴 한데, convert_dtypes() 메서드를 사용하면 Series(또는 데이터프레임의 각 Series)를 pd.NA를 지원하는 dtype으로 변환해준다.

5. info()

보통 데이터프레임을 탐색하기 위해 df.info() 메서드를 사용하는데, 이전에는 가독성이 떨어졌던 것을 예쁘게 제시되도록 개선했다.

6. to_markdown()

df.to_markdown() 메서드를 사용하면 데이터프레임을 마크다운 형식으로 돌려준다. 이걸 print 해서 실제로 마크다운 문서에 붙이면 표처럼 보일 수 있겠지. 얼마나 사용할지는 모르겠지만…?

기타

예를 들면 groupby로 집계한 데이터프레임에서 컬럼을 부를 때 컬럼 이름 하나만 넣거나 튜플로 넣던 걸 이제는 리스트 형태로 넣으라고 한다.

Selecting Columns from a Grouped DataFrame

When selecting columns from a DataFrameGroupBy object, passing individual keys (or a tuple of keys) inside single brackets is deprecated, a list of items should be used instead. (GH23566) For example:

df = pd.DataFrame({
    "A": ["foo", "bar", "foo", "bar", "foo", "bar", "foo", "foo"],
    "B": np.random.randn(8),
    "C": np.random.randn(8),
})
g = df.groupby('A')

# single key, returns SeriesGroupBy
g['B']

# tuple of single key, returns SeriesGroupBy
g[('B',)]

# tuple of multiple keys, returns DataFrameGroupBy, raises FutureWarning
g[('B', 'C')]

# multiple keys passed directly, returns DataFrameGroupBy, raises FutureWarning
# (implicitly converts the passed strings into a single tuple)
g['B', 'C']

# proper way, returns DataFrameGroupBy
g[['B', 'C']]

난 pandas를 pip가 아닌 파이썬 배포판 conda로 설치했기 때문에 아나콘다에서 버전 업이 되면 그때 써보든지 해야겠다.

아직 안 올라왔다.

https://anaconda.org/anaconda/pandas

애초에 가상환경도 안 써서 다른 라이브러리들과의 dependency 같은 걸 고려해야 할 텐데, 나 같은 무지랭이에게는 너무 어렵고… 그냥 conda에서 배포하는 대로 쓰는 게 편하니까.

앞으로 pandas가 어떻게 진화할런지

계속 지켜보자

지금 인기 글


댓글 남기기