본문 바로가기
Python/Pandas & numpy

판다스 : 예제(concat, 정규표현)

by Mr.DonyStark 2024. 2. 2.

□ 예제

  ○ 데이터 프레임 병합

  ○ 필드 두개 생성 및 기존필드 값을 가공하여 신규 필드에 저장

    - 정규표현 활용

    - split 및 리스트 인데스 활용

 

□ 코드

import re #정규표현를 위한 라이브러리 호출
import pandas  #판다스 라이브러리 호출

#데이터프레임 호출 및 병합
paper_2011 = pd.read_csv('C:/Users/romangrism/Desktop/Datasicence/Data/data/python_data/paper_information_2011.csv')
paper_2012 = pd.read_csv('C:/Users/romangrism/Desktop/Datasicence/Data/data/python_data/paper_information_2012.csv')
paper_2013 = pd.read_csv('C:/Users/romangrism/Desktop/Datasicence/Data/data/python_data/paper_information_2013.csv')
paper_2014 = pd.read_csv('C:/Users/romangrism/Desktop/Datasicence/Data/data/python_data/paper_information_2014.csv')
paper_2015 = pd.read_csv('C:/Users/romangrism/Desktop/Datasicence/Data/data/python_data/paper_information_2015.csv')
paper_2019 = pd.read_csv('C:/Users/romangrism/Desktop/Datasicence/Data/data/python_data/paper_information_2019.csv')
paper_2020 = pd.read_csv('C:/Users/romangrism/Desktop/Datasicence/Data/data/python_data/paper_information_2020.csv')

paper_list = pd.concat([paper_2011,paper_2012,paper_2013,paper_2014,paper_2015,paper_2019,paper_2020], axis=False).reset_index(drop=True)
paper_list.head()

 

#신규컬럼 생성 & 컬럼명 유지 값 초기화
paper_list['year'] = paper_list['citation']
paper_list['year'] == ''

#정규표현
pattern = r'\b20\w{2}\b'
new_list = list()
for title in paper_list['citation']:  #citation 필드의 값을 년도(숫자4자리 ex 2020)형식의 정규 표현에 대입하여 가공
    result = re.findall(pattern, title)
    for i in result:
        new_list.append(i) #가공된 년도 데이터들을 리스트화 

new_list_series = pd.Series(new_list) #가공 년도 데이터들이 담긴 리스트를 시리즈 변환
paper_list['year'] = new_list_series #생성한 컬럼명의 데이터 값으로 저장
paper_list

 

#타이틀 추출 및 컬럼생성 적용
raw = paper_list['citation'].reset_index(drop=True)
title_list = list()
for i in raw:
    title_list.append(i.split('.')[0]) #.으로 분리후 .앞에있는 단어, 즉, 첫번째 값을 인덱스로 리스트화
title_list = pd.Series(title_list) #리스트화된 데이터를 시리즈변환
paper_list['journal'] = title_list #신규컬럼 생성 및 해당 값 시리즈로 저장