아래의 예시 자료는 모두 company.csv파일을 기반으로 작성된 것!!
1, loc함수를 이용해서 Data Frame을 만들고자 할때(원하는 데이터를 뽑고자 할 때)
설정 : 변수명.loc[시작 인덱스행:끝 인덱스 행] -> 시작행에서부터 끝행까지의 원하는 Data Frame 추출 가능
위의 것도 하나의 Data Frame이기 때문에 변수명.loc[시작행:끝행].head() or tail()로 표현 가능
loc함수를 이용하여 특정 행의 특정 열에 대한 Data Frame을 만들고자 할 때
ids = [1, 2, 4, 1950]
company.loc[ids][['종목코드', '회사명', '분류']]
또는
ids = [1, 2, 4, 1950]
colums = ['종목코드', '회사명', '분류']
company.loc[ids][columns]
또는
ids = [1, 2, 4, 1950]
colums = ['종목코드', '회사명', '분류']
company.loc[ids, columns]
즉, loc함수를 이용하여 index와 column으로 접근이 동시에 가능함
코스피에 상장된 종목들만 따로 뽑아보기
company
company['분류'] == '코스피'
company[company['분류'] == '코스피']
columns = ['분류', '종목코드', '회사명']
company[company[분류'] == '코스피'][columns]
특정 종목명에 대해 찾기(삼성전자)
company
company['종목명'] == '삼성전자'
company[company['종목명'] == '삼성전자']
2. iloc함수를 이용하기(iloc함수란 index location의 줄임말)
company.iloc[0] -> 인덱스를 활용하여 데이터 가져오기 (해당 행을 시리즈 형태로 가지고 옴)
company.iloc[0].values -> numpy의 array형으로 아래와 같이 데이터를 가지고 올 수 있음
company.iloc[0].values[0]
3. 결측치 값 처리하기
결측치를 처리하는 것은 데이터 전처리(Pre-processing)하는 과정 중에 중요한 과정이라고 볼 수 있음
company['종목코드'].isnull()
company[company['종목코드'].isnull()]
company['종목코드'].notnull()
company.dropna() -> 출력 : null 값을 제외한 나머지 데이터들이 출력 됨
4. isin함수를 이용하여 column에서 특정 값을 가지는 데이터를 뽑아내기
예시) 삼성전자 또는 한화라는 회사명을 가진 데이터들에 대해서 뽑아보기
company['회사명'].isin(['삼성전자', '한화'])
company[company['회사명'].isin(['삼성전자', '한화'])]
5. str.contains함수를 이용하여 특정 키워드를 가진 데이터를 추출하기
예시)한화라는 키워드를 가진 모든 종목리스트 데이터를 뽑으려고 할 때
주의!! 사전에 데이터 항목 중에 null값이 있는지 확인한 후 dropna()를 통해 null값을 제거 후 특정 키워드를 가진 문자열 데이터를 추출한다. null값이 있는 상태에서 데이터 추출 시 오류 발생함.
company.dropna()
company = company.dropna()
company['회사명'].str.contains('한화')
company[company['회사명'].str.contains('한화')]
Pandas에서 object type은 파이썬에서 문자열과 같은 타입이라고 생각하면 됨
따라서 날짜간에 시간에 따른 비교가 불가능하다는 것을 뜻함
따라서 위의 series형태 데이터들의 데이터 타입을 datetime의 데이터 타입으로 변경을 해야함
문제
1. 업종이 기타 금융업이고
2. 코스닥에 상장되어 있으며
3. 2015-1-1 이후에 상장된 기업정보만 필터링할 수 있습니다.
상장일 컬럼을 datetime의 데이터 타입으로 변경을 하는 방법은 아래와 같이 두가지 방법이 있음
1)company.csv파일을 읽어올 때 '상장일' 컬럼을 모두 datetime형태로 읽어오는 파라미터를 사용하는 것(parse_dates)
company = pd.read_csv('company.csv', parse_dates = ['상장일'])
company
financial_corporate = company[company['업종'] == '기타 금융업']
kosdaq_financial_corporate = financial_corporate[financial_corporate['분류'] == '코스닥']
2)직접 '상장일'컬럼을 datetime형태로 바꿔주는 함수를 사용하는 방법(pd.to_datetime)
company = pd.read_csv('company.csv')
company
company['상장일'] = pd.to_datetime(company['상장일']) : 상장일 컬럼을 datetime형태로 변경한 후 company DataFrame의 '상장일'컬럼에 넣어준다는 뜻
financial_corporate = company[company['업종'] == '기타 금융업']
kosdaq_financial_corporate = financial_corporate[financial_corporate['분류'] == '코스닥']
3. 2015-1-1 이후에 상장된 기업정보만 필터링할 수 있습니다.
kosdaq_financial_corporate['상장일'] > pd.Timestamp(2015, 1, 1)
kosdaq_financial_corporate[kosdaq_financial_corporate['상장일'] > pd.Timestamp(2015, 1, 1)]
'데이터 분석' 카테고리의 다른 글
금융데이터 분석을 위한 파이썬 프로그래밍(1) (0) | 2022.06.10 |
---|---|
금융데이터 분석을 위한 Pandas 기초공부(3) (0) | 2022.06.09 |
금융데이터 분석을 위한 Pandas 기초공부(1) (0) | 2022.06.06 |
파이썬 프로그래밍 기초 공부정리(4) (0) | 2022.06.01 |
파이썬 프로그래밍 기초 공부정리(3) (0) | 2022.05.31 |