728x90
반응형
# 데이터 로드 및 라이브러리 import
import pandas as pd
df = pd.read_excel('./남북한발전전력량.xlsx', engine='openpyxl')
print(df.head())
#   전력량 (억㎾h) 발전 전력별  1990  1991  1992  1993  1994  1995  1996  1997  ...  2007  \
# 0        남한     합계  1077  1186  1310  1444  1650  1847  2055  2244  ...  4031   
# 1       NaN     수력    64    51    49    60    41    55    52    54  ...    50   
# 2       NaN     화력   484   573   696   803  1022  1122  1264  1420  ...  2551   
# 3       NaN    원자력   529   563   565   581   587   670   739   771  ...  1429   
# 4       NaN    신재생     -     -     -     -     -     -     -     -  ...     -   
# 
#    2008  2009  2010  2011  2012  2013  2014  2015  2016  
# 0  4224  4336  4747  4969  5096  5171  5220  5281  5404  
# 1    56    56    65    78    77    84    78    58    66  
# 2  2658  2802  3196  3343  3430  3581  3427  3402  3523  
# 3  1510  1478  1486  1547  1503  1388  1564  1648  1620  
# 4     -     -     -     -    86   118   151   173   195  
# 
# [5 rows x 29 columns]
# 0, 5행의 정보만, 1990이후 데이터 2열 이후 정보만 저장
ndf = df.iloc[[0,5],2:]
print(ndf)

   1990  1991  1992  1993  1994  1995  1996  1997  1998  1999  ...  2007  \
0  1077  1186  1310  1444  1650  1847  2055  2244  2153  2393  ...  4031   
5   277   263   247   221   231   230   213   193   170   186  ...   236   

   2008  2009  2010  2011  2012  2013  2014  2015  2016  
0  4224  4336  4747  4969  5096  5171  5220  5281  5404  
5   255   235   237   211   215   221   216   190   239  

[2 rows x 27 columns]
# 인덱스 변경
ndf.index=['South','North']
print(ndf)

       1990  1991  1992  1993  1994  1995  1996  1997  1998  1999  ...  2007  \
South  1077  1186  1310  1444  1650  1847  2055  2244  2153  2393  ...  4031   
North   277   263   247   221   231   230   213   193   170   186  ...   236   

       2008  2009  2010  2011  2012  2013  2014  2015  2016  
South  4224  4336  4747  4969  5096  5171  5220  5281  5404  
North   255   235   237   211   215   221   216   190   239  

[2 rows x 27 columns]
# 열의 이름을 정수형으로 변경
ndf.columns = ndf.columns.map(int)
print(ndf.head())

       1990  1991  1992  1993  1994  1995  1996  1997  1998  1999  ...  2007  \
South  1077  1186  1310  1444  1650  1847  2055  2244  2153  2393  ...  4031   
North   277   263   247   221   231   230   213   193   170   186  ...   236   

       2008  2009  2010  2011  2012  2013  2014  2015  2016  
South  4224  4336  4747  4969  5096  5171  5220  5281  5404  
North   255   235   237   211   215   221   216   190   239  

[2 rows x 27 columns]
# 선그래프 출력
# 열별로 선그래프가 작성되어버림 => 전치 행렬 필요
ndf.plot()

ndf2 = ndf.T
print(ndf2.corr())
ndf2.plot()

# 막대그래프로 출력
ndf2.plot(kind='bar')

# 히스토그램 출력
ndf2.plot(kind='hist')

 

 

 

 

 

 

 

 

 

 

 

반응형

+ Recent posts