데이터 분석 도전하기 - 3
이전 포스트 데이터 분석 도전하기 -1 데이터 분석 도전하기 - 2
Elice Numpy, Pandas 데이터 분석 강의와 함께 진행할 수 있습니다.
저번 목차에선 Numpy 라이브러리에 대해 익혔다 이번 목차에서는 Pandas에 대해 다루어 본다.
Pandas
Pandas는 R언어의 dataframe 데이터 타입을 모방하여 만든 라이브러리다. 이를 통해 데이터를 자유롭게 가공할 수 있다.
xxxxxxxxxx
import pandas as pd
population_dict = {
'korea': 5180,
'japan': 12718,
'china': 141500,
'usa': 32676
}
population = pd.Series(population_dict)
print(population)
xxxxxxxxxx
china 141500
japan 12718
korea 5180
usa 32676
dtype: int64
위와 같이 pd.Series()
를 사용하여
Series 데이터를 만든다.
이를 이용하여 데이터 프레임을 만들 수 있다.
GDP값을 나타내는 딕셔너리도 추가해본다.
xxxxxxxxxx
gdp_dict = {
'korea': 169320000,
'japan': 516700000,
'china': 1409250000,
'usa': 2041280000,
}
country = pd.DataFrame({
'population': population,
'GDP': gdp_dict
})
print(country)
xxxxxxxxxx
GDP population
china 1409250000 141500
japan 516700000 12718
korea 169320000 5180
usa 2041280000 32676
위와 같이 데이터프레임이 만들어진다.
이러한 데이터프레임을 만드는 다른 방법으로
.csv
파일을 바로 읽어오는 방법이 있다.
사용방법은 아래와 같다.
xxxxxxxxxx
country = pd.read_csv("<위치>")
이제 만들어진 데이터프레임을 가지고 상위 N번째 차트들만 출력해보려고 한다.
우선, 인구 수(population)대로 상위 3번째 데이터들을 출력해본다.
ascending = False
는 내림차순이다. 오름차순을 원한다면ascending = True
xxxxxxxxxx
country = country.sort_values("population", ascending = False)
print(country.head(3))
xxxxxxxxxx
GDP population
china 1409250000 141500
usa 2041280000 32676
japan 516700000 12718
하위 N번째까지의 데이터들도 출력할 수 있다. 아래와 같이 사용한다.
xxxxxxxxxx
print(country.tail(3))
xxxxxxxxxx
GDP population
usa 2041280000 32676
japan 516700000 12718
korea 169320000 5180
이제 공공데이터사이트를 통해 데이터를 가져와서 정렬을 해보려고 한다.
미국의 공공데이터 포털인 DATA.GOV을 통해 분야별 에너지자원 가격이 기록되어있는 파일을 가져와 석탄 가격 순서로 출력해볼 것이다.
Energy Prices, Dollars per Million Btu: Beginning 1970
https://data.ny.gov/api/views/pzgr-wqm5/rows.csv
이곳에서 바로 .csv
파일에 접근할 수 있다.
read_csv()
을 통해 데이터를 가져오고,
sor_values()
을 통하여 Coal
에 대한 내림차순 정렬을 한다.
xxxxxxxxxx
Energy_Price = pd.read_csv('https://data.ny.gov/api/views/pzgr-wqm5/rows.csv')
Energy_Price = Energy_Price.sort_values('Coal', ascending = False)
print(Energy_Price.head(4))
x
Year GDP Deflator Sector Coal Distillate Residual Kerosene \
20 2010 0.9200 Commercial 5.91 18.50 12.90 23.77
24 2009 0.9052 Commercial 5.80 15.02 9.94 20.83
16 2011 0.9490 Commercial 5.78 24.73 17.41 28.13
42 2005 0.8240 Residential 5.18 15.82 NaN 15.92
Propane Natural Gas Electricity Wood Motor Gasoline Jet Fuel
20 23.63 10.63 47.79 NaN NaN NaN
24 20.62 10.49 45.36 NaN NaN NaN
16 26.04 9.08 46.33 NaN NaN NaN
42 21.82 14.51 46.08 5.48 NaN NaN
2010년도의 상업 가격의 Coal의 가격이 가장 높았음을 알 수 있다.
여기까지 기본적인 Pandas사용법을 익혀보았다
다음 목차에서는 조건검색, 그룹핑에 대해 다루어본다
댓글