2017-04-24 2 views
-1

ID와 회사 이름이 포함 된 Excel 파일이 있다고 가정합니다. 디렉토리에 N 개의 엑셀 파일이 있고이를 모두 데이터 프레임으로 읽습니다. 그러나 각 파일에서 회사 이름의 철자가 약간 다르고 N ​​+ 1 열의 데이터 프레임이됩니다.팬더 read_excel, csv; 이름 열 이름 매퍼?

예를 들어 열 이름에 대한 매핑을 만드는 방법이있다 :

그래서
col_mappings = { 
    'company_name': ['name1', 'name2', ... , 'nameN], 
} 

하여 실행하면 하나의 컬럼에 회사 이름의 모든 다른 가능성을 read_excel 매핑 할 때? 또한 모든 유형의 데이터 파일로이 작업을 수행 할 수 있습니까? 예 : read_csv ect ..

+1

[MCVE] (https://stackoverflow.com/help/mcve)가 없으면이 질문에 답하기가 정말 어렵습니다. – Craig

+1

'read_csv' 이후 열의 이름을 바꿀 수없는 이유가 있습니까? –

+0

@StephenRauch - 내가 한 것은 내가 작성한 "통합"기능이 있으며 문제의 모든 필드를 병합하고 이름을 바꿉니다. 이 모든 것은 대량로드 이후입니다. 다른 방법이 있다면 나는 단지 궁금했다. – spitfiredd

답변

0

파일을 하나씩 읽은 후에 연결 하시겠습니까? 그렇다면 파일을 읽은 후 단순히 열 이름을 변경할 수 있습니다. 귀하의 질문에, 귀하의 데이터 프레임에는 Id와 CompanyName의 두 열만 포함된다고 가정합니다. 따라서 색인을 생성하여 간단하게 변경할 수 있습니다.

df = pd.read_csv(one_file) 
df.rename(columns={df.columns[1]:'company_name'}) 

그런 다음 원본 데이터 프레임에 연결합니다. 그렇지 않으면, 단지 지정된 열 이름 판독

,
df = pd.read_csv(one_file, names=['Id','company_name']) 

다음은 원래 열 이름을 포함로 DF에서 첫 번째 행을 제거한다.

.csv 및 .xlsx 파일 모두에서 수행 할 수 있습니다.