import pandas as pd
import numpy as np
data = pd.Series([1,2,3,4], index=['a','b','c','d'])
data
#딕셔너리로 만들 수 있다.
population_dict = {
'korea':5180,
'japan':12718,
'china':141500,
'usa':32676
}
population = pd.Series(population_dict)
population
population.values
여러 개의 Series가 모여서 행과 열을 이룬 데이터
gdp_dict = {
'korea': 169320000,
'japan': 516700000,
'china': 1409250000,
'usa': 2041280000,
}
gdp = pd.Series(gdp_dict)
country = pd.DataFrame({
'population': population,
'gdp': gdp
})
country
딕셔너리로 변환 가능
country.index
country.columns
country['gdp']
type(country['gdp'])
Series도 numpy array처럼 연산자 사용 가능
gdp_per_capita = country['gdp'] / country['population']
country['gdp per capita'] = gdp_per_capita
gdp_per_capita
country
저장과 불러오기
country.to_csv("./파일명.csv")
country.to_excel("파일명.xlsx")
country = pd.read_csv("경로")
country = pd.read_excel("경로")
loc : 명시적인 인덱스를 참조하는 인덱싱/슬라이싱
country.loc['china']
country.loc['korea':'japan',:"population"]
iloc : 파이썬 스타일 정수 인덱스 인덱싱/슬라이싱
country.iloc[0]
country.iloc[1:3, :2]
dataframe = pd.DataFrame(columns=['이름','나이','주소'])
dataframe.loc[0] = ['임원균', '26', '서울']
dataframe.loc[1] = {'이름':'철수', '나이':'25', '주소':'인천'}
dataframe.loc[1, '이름'] = '영희'
dataframe
새로운 칼럼 추가
dataframe['전화번호'] = np.nan
dataframe
dataframe.loc[0, '전화번호'] = '01012341234'
dataframe
컬럼이름이 하나만 있다면 series, 리스트로 들어가있다면 DataFrame
dataframe['이름']
dataframe[['이름','주소','나이']]
dataframe.isnull()
dataframe.notnull()
dataframe.dropna()
dataframe['전화번호'] = dataframe['전화번호'].fillna('전화번호없음')
numpy array에서 사용했던 연산자들을 활용할 수 있다.
A = pd.Series([2, 4, 6], index=[0, 1, 2])
B = pd.Series([1, 3, 5], index=[1, 2, 3])
A+ B
A.add(B, fill_value=0) #결측치 한번에 정리하고 싶을 때
add(+), sub(-), mul(*), div(/)
A = pd.DataFrame(np.random.randint(0, 10, (2, 2)), columns=list("AB"))
B = pd.DataFrame(np.random.randint(0, 10, (3, 3)), columns=list("BAC"))
A
B
A+ B
numpy array에서 사용했던 sum, mean등의 집계함수를 동일하게 사용할 수 있음
data = {
'A': [ i+5 for i in range(3) ],
'B': [ i**2 for i in range(3) ]
}
df = pd.DataFrame(data)
df['A'].sum()
df.sum()
df.mean()
sort_values()
df = pd.DataFrame({
'col1' : [2, 1, 9, 8, 7, 4],
'col2' : ['A', 'A', 'B', np.nan, 'D', 'C'],
'col3': [0, 1, 9, 4, 2, 3],
})
df
df.sort_values('col1')
df.sort_values('col1', ascending=False)
df.sort_values(['col2', 'col1'])