2017-10-03 2 views
1

안녕하세요 헤더가있는 csv (탭 구분)가 있고 파이썬 3.5에서 팬더 DataFrame에로드하고 싶습니다. 문제는 일부 헤더가 누락되었다는 것입니다 (예 : 아래의 예와 같이 헤더가없는 데이터가있는 열이 있음). read_csv 함수로로드하려고했지만 첫 번째 줄을 건너 뛰지 않으면 첫 번째 줄을 병합하여 헤더 수와 데이터 열 수를 일치시킵니다.팬더 : 누락 된 헤더 열을 추가하는 방법

이 CSV를 읽고 누락 된 헤더를 추가하는 방법은 있습니까? 아래 예에서 Header4 및 Header 5와 유사합니까?

| Header1 | Header2 | Header3 |  |  | 
|---------|---------|---------|--------|--------| 
| value1 | value2 | value3 | value4 | value5 | 
| value1 | value2 | value3 | value4 | value5 | 
+0

가능한 복제 [\ _csv 실종/불완전 머리글이나와 읽기 불규칙한 열 수] (https://stackoverflow.com/questions/34358196/read-csv-with-missing-incomplete-header-or-irregular-number-of-columns) – Shaido

답변

2

당신은 dict에 의해 사후 처리의 열 이름을 바꿀 수 있습니다 감사합니다

print (df) 
    Header1 Header2 Header3 Unnamed: 3 Unnamed: 4 
0 value1 value2 value3  value4  value5 
1 value1 value2 value3  value4  value5 


df = df.rename(columns = {'Unnamed: 3':'Header4','Unnamed: 4':'Header5'}) 
print (df) 
    Header1 Header2 Header3 Header4 Header5 
0 value1 value2 value3 value4 value5 
1 value1 value2 value3 value4 value5 

또는 사용자 정의 함수 :

f = lambda x: 'Header{}'.format(int(x.split()[1])+1) if 'Unnamed' in x else x 
df = df.rename(columns = f) 
print (df) 
    Header1 Header2 Header3 Header4 Header5 
0 value1 value2 value3 value4 value5 
1 value1 value2 value3 value4 value5 

또는 사용 매개 변수,145,및 header 또는 names 및 skiprows :

df = pd.read_csv('file', names=['Header1','Header2','Header3','Header4','Header5'], header=0) 
print (df) 
    Header1 Header2 Header3 Header4 Header5 
0 value1 value2 value3 value4 value5 
1 value1 value2 value3 value4 value5 

또는 :

df = pd.read_csv('file', 
       names=['Header1','Header2','Header3','Header4','Header5'], 
       skiprows=1) 
print (df) 
    Header1 Header2 Header3 Header4 Header5 
0 value1 value2 value3 value4 value5 
1 value1 value2 value3 value4 value5 
0
다음과 같이도 진행할 수 있습니다

:의

In [63]: df.columns =df.columns[:3].tolist() + ['Header4', 'Header5'] 

In [64]: df 
Out[64]: 
    Header1 Header2 Header3 Header4 Header5 
0 value1  value2  value3  value4 value5 
1 value1  value2  value3  value4 value5 
관련 문제