import pandas as pd
data = pd.Series([1, 2, 3, 4])
print(data)
# 0 1
# 1 2
# 2 3
# 3 4
# dtype : int64
pirnt(type(data)) #<class 'pandas.core.series.Series'> print(data.values) # [1 2 3 4] print(type(data.values)) #<class 'numpy.ndarray'>
dtype인로 데이터 타입을 지정 가능!
int.정수 -> float.실수
data = pd.Series([1, 2, 3, 4], dtype = "float") print(data.dtype) #float64
인덱스를 지정할 수 있고 인덱스로 접근 가능
data = pd.Series([1, 2, 3, 4], index = ['a', 'b', 'c', 'd'])
data['c'] = 5 #인덱스로 접근하여 요소 변경 가능
population_dict = { 'china' : 141500, 'japan' : 12718, 'korea' : 5180 'usa' : 32676 } population = pd.Series(population_dict)
country = pd.DataFrame({ 'gdp' : gdp, 'population' : population })
data = { 'country' : ['china', 'japan', 'korea', 'usa'], 'gdp' : [140, 51, 16, 204], 'population' : [141, 12, 5, 32] } country = pd.DataFrame(data) country = country.set_index('country')
1) dictionary : data = {key:value}
2) Series : series([1, 2, 3, 4])
3) DataFrame : 인덱스 - 시리즈 데이터
4) 딕셔너리에서 시리즈를 거치지 않고서도 바로 데이터 프레임을 만들 수 있다.
DataFrame 속성을 확인하는 방법 (6세대 포캣몬, 프레임은 뚜껑 같은 존재)
print(country.shape) # (4, 2) print(country.size) # 8 갯수 print(country.ndim) # 2 몇 차원인가 print(country.values) #[[
DataFrame의 index와 column에 이름 지정 가능
country.index.name = "Country" # 인덱스에 이름 지정 country.columns.name - "Info" # 칼럼 이름 지정
데이터프레임 저장 및 불러오기 기능
country.to_csv("./country.csv") country.to_excel("country.xlsx")
country = pd.read_csv("./country.csv") country = pd.read_excel("country.xlsx")
country.loc['china'] # 인덱싱
country.loc['japan' : 'korea', :'population'] # 슬라이싱
country/iloc[0] # 인덱싱
country.iloc[1:3, :2] # 슬라이싱
country['gdp'] : 컬럼 country[['gdp']] : 데이터 프레임 그 자체
[]는 컬럼, 즉 gdp에 해당하는 값만
[[]]는 데이터 프레임 자체, gdp라는 뚜껑까지 함께
masking 연산이나 query함수를 활용하여 조건에 맞는 dataframe 행 추출 가능
country[country['population'] < 10000] # masking 연산 활용 country.query("population>100000") # query 함수 활용
gdp_per_capita = country['gdp'] / country['population'] country['gdp per capita'] = gdp_per_capita
리스트로 추가 or 딕셔너리로 추가
df = pd.DataFrame(columns = ['이름, '나이', '주소']) #데이터프레임 생성 df.loc[0] = ['길동', '26', '서울'] #리스트로 데이터 추가 df.loc[1] = {'이름':'철수', '나이':''25', '주소':'인천'} #딕셔너리로 데이터 추가 df.loc[1, '이름'] = '영희' #명시적 인덱스 활용하여 데이터 수정
NaN값으로 초기화 한 새로운 컬럼 추가
@ nan = not a number
df['전화번호'] = np.nan #새로운 컬럼 추가 후 초기화 df.loc[0, '전화번호'] = '01012341234' #명시적 인덱스 활용하여 데이터 수정
DataFrame 에서 컬럼 삭제 후 원본 변경
df.drop('전화번호', axis = 1, inplace = True) #컬럼 삭제 #axis = 1 : 열 방향 / axis = 0 : 행 방향 #inplace = True : 원본 변경 / inplace = False : 원본 변경 x