반응형

파이썬, 2차원 자료를 pandas DataFrame() 2차원 자료 만들기

 

글. 오상문 sualchi@daum.net

 

pandas는 numpy와 함께 데이터 분석 및 수치 계산에 많이 사용하는 모듈이다. pandas에서 가장 많이 사용하는 기능은 1차원 구조의 Series와 다차원 구조의 DataFrame인데, 이번에는 pandas의 DataFrame를 이용하여 2차원 리스트 자료를 2차원 데이터 구조로 만드는 예제를 살펴보겠다.

 

[참고] pandas DataFrame 자료를 numpy ndarray로 바꾸기

s1 = pd.DataFrame([[ 90,  80,  85],
                   [ 88,  82,  85],
                   [ 72, 100,  90],
                   [250 ,262, 270]])

 

n1 = s1.as_matrix() # 이후 버전에서 사라질 수 있음
n2 = s1.values       # 호환성 위해 이것을 권장
print(n1)                # 두 출력 결과는 같음 
print(n2)

 

 

다음은 예제 소스 코드이다.

 

#--------------------------------------------------------------------- 

import pandas as pd   # pandas를 가져오고 별명 'pd'를 사용함

 

# 리스트 데이터를 이용하여 만든다. (인덱스는 정수 0,1,2,3 순서로 자동 지정)

s1 = pd.DataFrame([[ 90,  80,  85],
                   [ 88,  82,  85],
                   [ 72, 100,  90],
                   [250 ,262, 270]])

 

# 딕셔너리 데이터를 이용하여 만든다.
s2 = pd.DataFrame({"Kor":[100,  80,  85],
                   "Eng":[ 88,  82,  85],
                   "MTH":[ 75, 100,  90],
                   "Sum":[260, 262, 270]})

 

print(s1)
print("-----------------------")
print(s2)
print("-----------------------")
print(s1[0][0])        # 90
print("-----------------------")

 

 

# 합계순 정렬하여 출력하기
print(s2.sort_values(by="Sum", ascending=False))
print("-----------------------")

 

# 테이블 가로세로 바꾸어 출력하기
print(s2.T)

 

[실행 결과]

     0      1      2
0   90    80    85
1   88    82    85
2   72   100   90
3  250  262  270
-----------------------
   Kor  Eng  MTH  Sum
0  100   88   75  260
1   80   82  100  262
2   85   85   90  270
-----------------------
90
-----------------------
   Kor  Eng  MTH  Sum
2   85   85    90  270
1   80   82  100  262
0  100   88   75  260
-----------------------
         0     1     2
Kor   100   80    85
Eng    88   82    85
MTH   75  100    90
Sum  260  262  270

 

 

<이상>

 

 

반응형

+ Recent posts