[Pandas] 6. 폴더 내 여러 데이터 프레임(파일) 합치기
공부/코딩

[Pandas] 6. 폴더 내 여러 데이터 프레임(파일) 합치기

 

[Pandas] 5. 조건에 맞춰 데이터 추출하고 수정하기 (Kaggle 에서 가져온 Gear Defection 데이터 이용)

Kaggle 이라는 사이트가 있습니다. 데이터 사이언스 커뮤니티입니다. 유명한 IT 기업들이 데이터 분석 Competition을 열기도 합니다. 많은 데이터들이 올라와있고, 사람들이 그 분석방법을 공유합니

senti-mech.tistory.com

 위 글에서 소개한 데이터를 머신러닝으로 분류하기 앞서, 각 파일로 나뉘어져있는 데이터를 하나로 합쳐보자.

KNN 제외

 나는 데이터가 담긴 총 6개의 파일이 있고, 각 파일의 Column Head는 모두 동일하다. 이 데이터들에서 조건에 맞는 데이터들만 꺼내어 하나로 합칠 예정이다.

 

1. 폴더 내 csv 파일 모두 읽어오기

import pandas as pd
import numpy as np
import os

dir = 'C:/Users/ap/Blog_Data Analysis/GearDefection'
files = os.listdir(dir)
k = 0

for i in range(len(files)) :
    if 'csv' in files[i] :
            k = k+1
            globals()["df{}".format(k)] = pd.read_csv(files[i]) #{}에 format 값이 들어간다

 

 os.listdir 을 통해 경로 내 파일을 가져오고, csv 파일만 골라내어 데이터프레임으로 만들었다. 이 때 for 문에 변수를 적용시키기 위해 global() 함수와 format 을 이용하였다. 

 

2. 조건에 맞는 데이터 뽑아오기

min =df1['speedSet'].min()

for i in range(1,6) :
    df = globals()["df{}".format(i)]
    globals()["data{}".format(i)] = df.loc[(df['speedSet']<=min) & (df['load_value']==0)].copy()

 

speedSet의 최소값이 숫자가 더러워(...) 그냥 변수로 선언해서 넣었다.

이제 각 파일에서 조건에 맞는 데이터들이 data1, data2...에 담겼다.

 

이제 이 데이터들을 하나로 합치자. 

 

3. pd.concat() 으로 데이터프레임 합치기

total = pd.concat([data1,data2,data3,data4,data5,data6], ignore_index=True)
total = total.drop('time_x', axis=1) #axis = 0 는 행방향, axis = 1은 열방향
total

결과값

drop 함수를 이용해 사용하지 않는 Column을 지워줬습니다.

이제 이 파일을 이용해 머신러닝을 공부해볼 일만 남았습니다.