데이터 프레임은
각각의 컬럼별로 각각의 다른 타입을 가지게 된다.
Series를 모아서 만든 Data Table ( 2차원 )
가장 원초적으로 데이터프레임을 생성하는 방법
(거의 대부분은 csv파일을 불러와서 사용함)
Dict 의 형태로 넣어주면 Key 값은 columns , value 값이 Df 의 value 가 된다.
import pandas as pd
import numpy as np
raw_data = {'first_name':['jason','molly','tina','jake','amy'],
'last_name : ['Miller','jacabson','all','milner','cooze'],
'age' : [42,52,36,24,73],
'city':['San Francisco','Baltimore','Miami','Douglas','Boston']}
df = pd.DataFrame(raw_data, columns = ['first_name','last_name','age','city'])
컬럼별로 데이터를 뽑는 방법 2가지
df.first_name
df["first_name"]
두 가지다 first_name 컬럼들의 데이터를 가지고 온다.
로우별로 데이터를 뽑는 방법 2가지
df.loc[1] # 첫 번째 로우 인스턴스를 뽑아온다.
df["age"].lioc[1:] # 첫 번째 로우 인덱스를 뽑아온다.
loc - index location
loc 은 기준을 잡을 때 location 으로 보기 때문에 값으로 만 판단한다.
인덱스의 이름으로 가져온다.
iloc - index position
iloc 은 기준을 잡을 때 postion 이기 때문의 값이 달라도 행의 순서로 받아들인다.
인덱스의 넘버로 가져온다.
예를 들어보면
s = pd.Series(np.nan, index = [49,48,47,46,45,1,2,3,4,5])
s.loc[:3]
s.iloc[:3]
위의 loc 의 경우는 값만 보기 때문에 값이 3인 것만 찾아서 그 전까지를 반환하고
iloc의 경우 순서만 보기때문에 값이 뭐든간에 3번째 순서를 찾아서 그 전까지를 반환한다.
데이터 프레임 행과 열을 지우는 방법
del df['first_name']
del 로 지우는 경우에는 바로 원본 데이터를 지워버리기 때문에
한 번 실행하고 다시 실행하면 지우고자 하는 데이터가 사라져 지울 수 없다.
df.drop([0,1,2,3]) # 한개 이상의 index number로 drop
df.drop("first_name",axis=1) #axis 지정으로 축을 기준으로 drop 컬럼을 지우는 방법
drop 으로는 행과열을 지울 수 있지만 원본데이터를 건들이지 않는다.
그래서 이 결과를 덮어 씌우거나 다른 변수에 재할당해서 사용해 주어야한다.
del 과의 차이점
Pandas 내장함수
describe
Numeric type 데이터의 요약 정보를 보여줌
unique
series data의 (중복되지않은)유일한 값을 list로 반환함
보통 라벨링 할때 많이 사용됨.
df.race.unique()
dict(enumerate(sorted(df['race'].unique())))
value = list(map(int, np.array(list(enumerate(df['sex'].unique())))[:,0].tolist()))
key = np.array(list(enumerate(df['sex'].unique())), dtype=str)[:,1].tolist()
df['sex'].replace(to_replace=key,value=value,inplace=True)
예를 들어 이런식으로 사용하면 male 과 female로 되어있는 성별이 0과 1로 바뀌게 된다.
sort_values
column 값을 기준으로 데이터를 sorting
df.sort_values(["age","earn"],ascending=True)
ascending=True 는 오름차순 정렬 ascending=False 는 내림차순
cumsum()
시간의 순서의 따라 거래량을 표현할 때
값을 점점 합산해주는 함수
cummax()
가장 큰 값들만 보여주는 함수
'Python' 카테고리의 다른 글
[pandas]. 사용자의 합계를 구해서 칼럼 추가하기 (feat. groupBy) (0) | 2021.10.27 |
---|---|
[Flask].이미지 데이터를 post 형식으로 flask 서버로 보내는 방법( 이상한 트릭) (0) | 2020.12.03 |
[Python] 정규 표현식 예제 실습 ( compile , search ) (0) | 2020.11.16 |
[Python] . 정규표현식 총정리!! ( re , Regular Expression ) (0) | 2020.11.16 |
[Python] List Comprehension 으로 matrix 다루기 (0) | 2020.10.09 |