매일 공식문서 읽어보기 002 - Pandas 1.5.0

김영하·2022년 10월 11일
0

이어서 본격적으로 주제별 읽기를 시작하겠습니다.
기본적인 문서이외에 제가 추가한 내용은 앞으로 추가)로 구분합니다.

시작은 10 minutes to pandas (10분만에 해보는 판다스)입니다.

10 minutes to pandas

10분만에 해보는 판다스

This is a short introduction to pandas, geared mainly for new users. You can see more complex recipes in the Cookbook.

판다스가 처음인 사용자를 대상으로 만든 간단한 소개글입니다. Cookbook (쿡북)에서 좀더 복잡한 처리방법들을 볼 수 있습니다.

Customarily, we import as follows:
일반적으로 다음과 같이 라이브러리를 불러옵니다.

In [1]: import numpy as np

In [2]: import pandas as pd

추가) numpy는 수치 계산을 위한 파이썬 라이브러리입니다. https://numpy.org/

pandas를 줄여서 pd
numpy를 줄여서 np
로 하는 것이 많이 사용됩니다.

Object creation

객체 생성

See the Intro to data structures section.

데이터 구조 소개 (Intro to data structures) 부분을 참조합니다.

Creating a Series by passing a list of values, letting pandas create a default integer index:

값들을 가진 리스트 (list)를 전달해서 시리즈 (Series) 를 생성합니다. 이 때, 판다스가 정수형을 가진 인덱스를 생성합니다:

In [3]: s = pd.Series([1, 3, 5, np.nan, 6, 8])

In [4]: s
Out[4]: 
0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

추가) 판다스에서는 주로 시리즈 (Series)와 데이터프레임 (dataframe)으로 데이터를 다룹니다. 시리즈들이 모여서 데이터프레임을 만들게 됩니다. 시리즈 1개도 데이터프레임이 될 수 있습니다. np.nan은 NumPy에서 결측 데이터 (missing value)를 의미합니다. 판다스에서는 NaN으로 표시됩니다. 정수형을 가진 리스트를 전달했지만, 시리즈로 만들어질 때는 데이터형이 float64로 바뀐 것을 볼 수 있습니다.

Creating a DataFrame by passing a NumPy array, with a datetime index using date_range() and labeled columns:

NumPy 배열 (array)를 전달해서 데이터프레임 (DataFrame) 를 만듭니다. 이 때, 아래와 같이 date_range() 로 datetime형식의 인덱스 및 이름을 가진 컬럼을 생성할 수 있습니다:

In [5]: dates = pd.date_range("20130101", periods=6)

In [6]: dates
Out[6]: 
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
               '2013-01-05', '2013-01-06'],
              dtype='datetime64[ns]', freq='D')

In [7]: df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list("ABCD"))

In [8]: df
Out[8]: 
                   A         B         C         D
2013-01-01  0.469112 -0.282863 -1.509059 -1.135632
2013-01-02  1.212112 -0.173215  0.119209 -1.044236
2013-01-03 -0.861849 -2.104569 -0.494929  1.071804
2013-01-04  0.721555 -0.706771 -1.039575  0.271860
2013-01-05 -0.424972  0.567020  0.276232 -1.087401
2013-01-06 -0.673690  0.113648 -1.478427  0.524988

Creating a DataFrame by passing a dictionary of objects that can be converted into a series-like structure:

시리즈와 비슷한 구조로 변환할 수 있는 객체들을 가진 딕셔너리를 전달해서 데이터프레임 (DataFrame) 을 만들 수 있습니다.

In [9]: df2 = pd.DataFrame(
   ...:     {
   ...:         "A": 1.0,
   ...:         "B": pd.Timestamp("20130102"),
   ...:         "C": pd.Series(1, index=list(range(4)), dtype="float32"),
   ...:         "D": np.array([3] * 4, dtype="int32"),
   ...:         "E": pd.Categorical(["test", "train", "test", "train"]),
   ...:         "F": "foo",
   ...:     }
   ...: )
   ...: 

In [10]: df2
Out[10]: 
     A          B    C  D      E    F
0  1.0 2013-01-02  1.0  3   test  foo
1  1.0 2013-01-02  1.0  3  train  foo
2  1.0 2013-01-02  1.0  3   test  foo
3  1.0 2013-01-02  1.0  3  train  foo

추가) 딕셔너리 (Dictionary)는 파이썬의 자료형입니다. JSON 형태와 같으며, key:value (키:값)을 형태로 되어 있습니다. 사전과 같이 단어:설명의 형태입니다. 딕셔너리를 판다스에 전달하면, 키는 컬럼의 이름이 되고, 값은 해당 컬럼의 값이 됩니다. 각 컬럼의 길이는 같아야 합니다. 만약 1개만 주어진다면 해당 값이 반복되어 컬럼을 채웁니다.

The columns of the resulting DataFrame have different dtypes:

데이터프레임을 생성하면 각 컬럼들은 서로 다른 dtypes (자료형) 을 가집니다:

In [11]: df2.dtypes
Out[11]: 
A           float64
B    datetime64[ns]
C           float32
D             int32
E          category
F            object
dtype: object

If you’re using IPython, tab completion for column names (as well as public attributes) is automatically enabled. Here’s a subset of the attributes that will be completed:

IPython을 사용하는 환경이라면, 컬럼 이름뿐만 아니라 속성 (public attributes) 입력할 때 탭 완성 (tab completion) 기능이 자동으로 활성화됩니다. 다음은 자동으로 완성되는 속성들의 일부분입니다:

In [12]: df2.<TAB>  # noqa: E225, E999
df2.A                  df2.bool
df2.abs                df2.boxplot
df2.add                df2.C
df2.add_prefix         df2.clip
df2.add_suffix         df2.columns
df2.align              df2.copy
df2.all                df2.count
df2.any                df2.combine
df2.append             df2.D
df2.apply              df2.describe
df2.applymap           df2.diff
df2.B                  df2.duplicated

추가) 일반적으로 리눅스나 맥의 쉘, 윈도우즈의 커맨드창에서 명령어나 경로 등의 입력할 때, 특정 문자를 입력하고 탭을 누르면 해당 되는 문자열을 최대한 운영체제에서 자동으로 채워줍니다.

As you can see, the columns A, B, C, and D are automatically tab completed. E and F are there as well; the rest of the attributes have been truncated for brevity.

위 예제를 보면 컬럼 A, B, C, D가 자동으로 완성되어 보여집니다. 컬럼 E, F 또한 존재하지만, 간결하게 보여주기 위해 생략했습니다.

profile
항상 공부하고 나누고 싶은 낭만학습자

0개의 댓글