데이터 분석

금융데이터 분석을 위한 Pandas 기초공부(3)

남참새 2022. 6. 9. 16:35
728x90
반응형

※DataFrame 생성하기!

일반적으로 csv파일을 불러들여와서 DataFrame을 확인하는데 이번엔 직접 만들어보도록 해보자

import pandas as pd

pd.DataFrame() -> Pandas에 있는 DataFrame 메소드를 이용해서 빈 데이터프레임을 만든다

예시1-1)

sample_data = [           

 ['2020-01-01', 10000]

 ['2020-01-02', 20000]      -> 리스트안에 리스트가 들어간 형태로 데이터를 구성함

 ['2020-01-03', 30000]

]

sample_data

pd.DataFrame(sample_data)

pd.DataFrame(sample_data, columns['date', 'price']) -> DataFrame안에 column명을 지정해줄 수 있다. **뒤에 인덱스명도 설정 가능!!(아래쪽 참고)

예시1-2)

sample_data = {         

 'date': ['2020-01-01', '2020-01-02', '2020-01-03']

 'price': [10000, 13000, 11500]                              -> 딕셔너리안에 리스트가 들어간 형태로 데이터를 구성함

}

pd.DataFrame(sample_data)

예시1-3)

sample_data = [         

 {'date': '2020-01-01', 'price': 10000},

 {'date': '2020-01-02', 'price': 13000},   -> 리스트안에 딕셔너리가 들어간 형태로 데이터를 구성함

 {'date': '2020-01-03', 'price': 11500}

]

pd.DataFrame(sample_data)

위의 sample_data에 인덱스명 설정하기

index_list = ['First', 'Second', 'Third'] -> 인덱스 설정을 위한 변수 설정하기

index_list -> index_list 확인

pd.DataFrame(sample_data, index=index_list)

위에서 뽑아낸 index와 columns array값을 리스트와 비슷한 형태로 사용할 수 있다는 뜻

sample_df.describe() -> sample_df와 같이 숫자로 구성된 자료들에 대한 통계값을 아래와 같이 요약해서 보여줌

특정 colunm의 특정 통계치를 알고자 할 떄

sample_df['price'].mean()

sample_df['price'].min()

sample_df['price'].max()

sample_df['price'].std()

 

DataFrame을 가격순으로 정렬하고자 할 떄 sort_values(by='정렬하기를 원하는 기준점이 되는 columns명'를 사용한다

sample_df.sort_values(by='price') -> 기본적으로 오름차순으로 정렬됨

sample_df.sort_values(by='price', ascending=False) -> 내림차순으로 정렬됨

※DataFrame 합치기

1-1) concat함수 사용

Trancsaction_0.csv, Trancsaction_1.csv, Trancsaction_2.csv에 대한 파일을 upload실행

import pandas as pd

pd.read_csv(Transaction_0.csv) -> 파일이 정상적으로 불러들여오는지 확인

tr_0 = pd.read_csv(Transaction_0.csv)

tr_1 = pd.read_csv(Transaction_1.csv)  -> 변수 설정함

tr_2 = pd.read_csv(Transaction_2.csv) 

각각의 변수들에 대해 concat함수를 이용하여 DataFrame을 합침

pd.concat([tr_0, tr_1, tr_2]) -> 이때 오류발생

그 이유는 tr_0, tr_1, tr_2에 대한 DataFrame을 확인하였을 때 colum명에 대한 순서가 각각 다름

해당 오류에 대한 이유는 보면 알 수 있음

sort=True 또는 sort=False를 추가적으로 고려해야 함

pd.concat([tr_0, tr_1, tr_2], sort=True)

1-2) append함수 사용

tr_0 = pd.read_csv(Transaction_0.csv)

tr_1 = pd.read_csv(Transaction_1.csv)  -> 변수 설정함

tr_2 = pd.read_csv(Transaction_2.csv) 

tr_0.append([tr_1, tr_2], sort=False)

1-3)직접만든 DataFrame에 합치기

how = [

{'how': '무통장 입금', 'installment': '없음'},

{'how': '카드결제', 'installment': '0개월'},

{'how': '카드결제', 'installment': '3개월'}

]

how

how = pd.DataFrame(how, index=['Park', 'Kim', 'Choi']) -> how의 DataFrame에 index값을 설정

tr_1 = tr_1.set_index('Name') -> tr_1에 인덱스명을 Name으로 설정

pd.concat(['tr_1', 'how'], axis=1) -> axis=1일때는 행으로 DataFrame을 합치는 것이고, axis=0일 땐 열로 합침