2016-07-18 2 views
-3

10 개의 개별 csv 파일에 데이터가 있습니다. 각 CSV 파일에는 하나의 데이터 엔트리 행 (500000 데이터 포인트, 헤더 없음 등) 만 있습니다. 세 가지 질문 :여러 CSV 파일 분석

  1. 어떻게 데이터를 500000 행으로 하나의 열로 변환 할 수 있습니까?
  2. 숫자를 하나의 배열로 가져 오는 것이 더 좋습니다 (500000 x 10). 그렇다면 어떻게 할 수 있습니까?
  3. 하나의 DataFrame 500000 x 10으로 가져 와서 분석하는 것이 더 낫습니다.

답변

1

파일 이름이 files 인 것으로 가정합니다. 그러면 :

df = pd.concat([pd.read_csv(f, header=None) for f in files], ignore_index=True) 
  1. df는 10 × 500000 dataframe이다. 그것을 500000 x 10으로 만드십시오 df.T

2 및 3의 답은 작업에 따라 다릅니다.

+0

@deserthiker : df.as_matrix()를 사용하여 numpy로 변환 할 수도 있습니다. – Ohumeronen

0

첫째, 모든 10 CSV를 읽어

import os, csv, numpy 
import pandas as pd 

my_csvs = os.listdir('path to folder with 10 csvs') #selects all files in folder 
list_of_columns = [] 
os.chdir('path to folder with 10 csvs') 

for file in my_csvs: 
    column = [] 
    with open(file, 'r') as f: 
     reader = csv.reader(f) 
     for row in reader: 
      column.append(row) 
    list_of_columns.append(column) 

당신이 목록 - 열 목록을 얻는 방법이있다. 다음으로 pandas df 또는 numpy로 바꾸거나 작업하기에 편안함을 느껴보십시오.