2017-12-09 14 views
0

C : \ 1의 11이라는 폴더에 csv의 목록이 있습니다. 모든 데이터의 열 수가 같습니다. A.csv여러 파일을 읽고 데이터 프레임에로드하는 방법

aa zz 1  AA 
aab qq 3  FF 
ca qq 5  QQ 

B.csv 나는 dataframe에 해당 폴더에있는 각 파일을 읽을 어떻게

aa GG 09 VV 
aab HH 03 WW 
ca CC 0  UU 

는 각각의 새로운 데이터 사이의 빈 열을 가질 수 있도록이 CSV에서 읽을

.

A  B  C  D  E F  G  H  I 
aa zz 1  AA   aa GG 09 VV 
aab qq 3  FF   aab HH 03 WW 
ca qq 5  QQ   ca CC 0  UU 

즉 :

가 있도록처럼 보이는

dfs = {i: pd.read_csv('C:\\1\\{}.csv'.format(i)) for i in ['a', 'b']} 
print (dfs['a']) 

또는 :

import os 
import pandas as pd 
filelist = os.listdir(targetdir) 
df_list = [pd.read_table(file) for file in filelist] 
big_df = pd.concat(df_list) 


    FileNotFoundError: File b'b.csv' does not exist 

답변

0

당신은 다음과 같이 각 파일 읽기에 스페이서 데이터 프레임을 추가 할 수 있습니다 :

import os 
import pandas as pd 

# with directory name 1, located at ~/1: 
dir_name = "1" 
path = "~" 
dfs = [] 

# with files A.csv, B.csv in ~/1 (e.g. ~/1/A.csv): 
for fname in os.listdir(f"{path}/{dir_name}"): 

    df = pd.read_csv(f"{path}/{dir_name}/{fname}", header=None) 
    spacer = pd.DataFrame([" "]*len(df)) 
    dfs.append(df) 
    dfs.append(spacer) 
master = pd.concat(dfs, axis=1) 

master 
    0 1 2  3 0 0 1 2 3 0 
0 aa zz 1 AA  aa GG 9 VV 
1 aab qq 3 FF  aab HH 3 WW 
2 ca qq 5 QQ  ca CC 0 UU 

당신은 정말 당신이 당신의 게시, 사용 규정 (A, B, C) 알파벳 열 이름하려는 경우 :

import string 
colnames = string.ascii_uppercase 
master.columns = [x for x in colnames[:len(master.columns)]] 

주 : 디렉토리 경로는 맥 구문을 사용을하지만 적응 정도로 쉬워야한다 Windows.

+0

나는 pandas.errors.ParserError : 데이터를 토큰 화하는 중 오류가 발생하는 것 같습니다. C 오류 : 4 번 줄에서 2 번봤을 때 예상되는 1 개의 입력란이 있습니다. –

+1

일반적으로 CSV에 구분 기호를 올바르게 지정하지 않았거나 실제로 파일을 구분하는 것과는 별도로 파일에 구분 기호가있는 경우 발생합니다. 예를 들어, 원래 필드에 A.csv를 표시하고 각 필드를 구분하는 여러 개의 공백 문자가 작동하지 않습니다. (필자는 프리젠 테이션을위한 것이라고 생각했는데, CSV라고 했으므로 쉼표로 구분됩니다.) 구분 기호를 확인하고'read_csv '의'sep' 인수가 올바른지 확인하십시오. –