Pandas 데이터 보기 (Viewing data)


Pandas 객체 생성하기 (Object creation)

Pandas 객체의 데이터를 확인하는 다양한 방법에 대해 소개합니다.

순서는 아래와 같습니다.




1) DataFrame 만들기

예제

import pandas as pd
import numpy as np

dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))

print(df.head(2))
print(df.tail(3))
                   A         B         C         D
2013-01-01  1.764052  0.400157  0.978738  2.240893
2013-01-02  1.867558 -0.977278  0.950088 -0.151357
2013-01-03 -0.103219  0.410599  0.144044  1.454274
2013-01-04  0.761038  0.121675  0.443863  0.333674
2013-01-05  1.494079 -0.205158  0.313068 -0.854096
2013-01-06 -2.552990  0.653619  0.864436 -0.742165

date_range() 함수를 사용해서 ‘20130101’을 시작으로 하는 6개의 DatetimeIndex를 만들었습니다.

또한 np.random.randn() 함수를 사용해서 임의의 숫자 데이터를 갖는 DataFrame을 만들었습니다.


Pandas 객체 생성하기 (Object creation)



2) df.head() / df.tail()

예제

import pandas as pd
import numpy as np

dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))

print(df.head(2))
print(df.tail(3))
                   A         B         C         D
2013-01-01 -1.609018 -1.546046  1.594722  0.251137
2013-01-02  0.590297  0.944036  1.611781 -0.803152
                   A         B         C         D
2013-01-04  0.505909 -0.673781 -0.836765 -1.156259
2013-01-05  0.787691  0.057011 -1.266527  0.255031
2013-01-06 -1.228166  1.518779  0.158763 -1.400699

df.head()df.tail()을 사용하면 각각 DataFrame의 위, 아래에서부터 몇 개의 행을 얻을 수 있습니다.

예제에서는 위에서 두 개의 행, 그리고 아래에서 세 개의 행을 출력했습니다.


Pandas 객체 생성하기 (Object creation)



3) df.index / df.columns

예제

print(df.index)
print(df.columns)
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
             '2013-01-05', '2013-01-06'],
            dtype='datetime64[ns]', freq='D')
Index(['A', 'B', 'C', 'D'], dtype='object')

인덱스와 열의 레이블을 출력하려면, indexcolumns을 사용합니다.


Pandas 객체 생성하기 (Object creation)



4) df.to_numpy()

예제

print(df.to_numpy())
[[-0.04219132 -0.78509062  1.82118794 -0.50527708]
[ 1.25552344  2.56573571  2.15202539  1.09998264]
[-0.16830456  0.58679295  0.39410187 -2.0896648 ]
[ 0.58638001 -0.7350871  -0.79163044  1.9113404 ]
[ 0.41635159  0.41550025 -0.5673976   0.515888  ]
[-1.05598448  0.01596972  0.78679791 -0.39670978]]

to_numpy()는 데이터를 NumPy 방식으로 표현하도록 합니다.

하지만 DataFrame이 서로 다른 자료형을 갖고 있다면, NumPypandas의 근본적인 차이로 인해 비용이 많이 드는 작업입니다.

NumPy 어레이는 전체 어레이에 대해 하나의 자료형 (dtype)을 가지지만, pandasDataFrame은 열마다 하나의 자료형을 가집니다.

to_numpy()를 호출하면, pandasDataFrame의 자료형을 모두 담을 수 있는 NumPy 자료형을 찾습니다.

모두 부동소수점 값을 갖는 DataFrame에 대해, to_numpy()은 빠르며 데이터를 복사할 필요가 없습니다.




5) df.describe()

예제

print(df.describe())
              A         B         C         D
count  6.000000  6.000000  6.000000  6.000000
mean  -0.639661  0.340606  0.496345 -0.735567
std    1.138222  0.539525  0.825652  1.204526
min   -2.616421 -0.436817 -0.750089 -2.472597
25%   -0.775621 -0.046407  0.020717 -1.591189
50%   -0.699894  0.620223  0.606058 -0.397725
75%    0.127015  0.686802  1.123276  0.239462
max    0.576453  0.799630  1.394758  0.391798

df.describe()은 데이터에 대한 통계적 요약을 보여줍니다.

데이터의 개수, 평균, 표준편차, 최대/최소 값 등을 간편하게 얻을 수 있습니다.




6) df.T

예제

print(df.T)
   2013-01-01  2013-01-02  ...  2013-01-05  2013-01-06
A    0.006339    2.222076  ...    1.241407   -0.834424
B   -0.435354   -0.094142  ...   -0.173779   -1.865298
C   -1.146673    0.465518  ...    0.623905   -1.624581
D    1.477844    0.765829  ...    0.757412   -0.908118

[4 rows x 6 columns]

df.TDataFrame의 행과 열을 교환 (transpose)합니다.




7) df.sort_index()

예제

print(df.sort_index(axis=1, ascending=False))
                   D         C         B         A
2013-01-01 -0.005029  0.414458  0.399829  0.654783
2013-01-02  2.341468  1.183852 -0.593157  2.208687
2013-01-03  0.108123 -0.177902 -0.091888 -0.648707
2013-01-04  1.370133 -0.164616  0.203826 -0.111991
2013-01-05  1.594731  1.210591 -0.196160  1.304416
2013-01-06  1.515683 -0.206454 -0.194870 -0.257422

df.sort_index()를 사용해서 축을 정렬할 수 있습니다.

예제에서는 첫번째 축을 따라 내림차순으로 정렬했습니다.




8) df.sort_values()

예제

print(df.sort_values(by='B'))
                   A         B         C         D
2013-01-01 -0.384324 -0.812817 -0.136048  0.282506
2013-01-06  0.906194 -0.422318  1.358811 -0.523248
2013-01-03  0.036848  0.410957 -0.872071  0.020571
2013-01-05  0.643707  0.876459 -1.378311 -0.179811
2013-01-02 -0.662058  1.007308 -1.390414 -1.171969
2013-01-04 -0.575577  1.254676  1.386749  1.073495

df.sort_index()를 사용해서 축을 정렬할 수 있습니다.

예제에서는 두번째 열의 값의 크기에 따라 DataFrame을 정렬했습니다.



이전글/다음글