여러 CSV 파일을 행이 아닌 열별로 결합합니다.

여러 CSV 파일을 행이 아닌 열별로 결합합니다.

단일 Excel 스프레드시트(별도의 탭이 아닌 하나의 탭에 모든 항목 포함)로 결합하려는 최대 100개의 CSV 파일이 있습니다. 이러한 CSV 파일은 형식이 동일합니다. 각 파일에는 약 60KB 크기의 헤더가 있는 4,000개의 행과 2개의 열이 포함되어 있습니다.

지금까지 찾은 모든 솔루션은 활성 탭의 마지막 행 끝에 다음 CSV를 추가합니다. 마지막 열 바로 오른쪽 열에 새 CSV를 추가할 수 있는 항목을 본 적이 없습니다.

다음은 몇 가지 예입니다.

  1. DOS 복사 방법: *.csv merge.txt 복사

  2. 이 솔루션. (VBA 스크립트.)

  3. Excel의 데이터>새 쿼리>파일에서>폴더에서(Excel 2013) .

인터넷에서 CSV 파일을 병합하기 위한 Windows Powershell 스크립트의 예도 있습니다.

위의 모든 방법은 약 400,000행의 데이터가 포함된 단일 Excel 스프레드시트를 생성하는데 이는 나에게는 쓸모가 없습니다.

이 문제를 해결하기 위한 제안을 보내주시면 감사하겠습니다. 감사해요!

편집하다. 쉬운 해결책을 찾았습니다. r의 cbind()를 사용하여 데이터 프레임의 데이터를 결합한 다음 이를 csv에 씁니다. 전체 프로세스에는 ~3초가 걸렸습니다. 작업에 적합한 도구!

기여해 주신 모든 분들께 감사드립니다. 건배,

--tcollar

답변1

"네이티브" Windows 10에 대해서는 잘 모르겠지만 Linux용 Windows 하위 시스템이 설치되어 있는 경우 paste원하는 방식으로 파일을 열별로 연결하는 UNIX 명령을 사용할 수 있습니다.

답변2

세 번째 옵션 사용: 'Excel의 데이터 사용>새 쿼리>파일에서>폴더에서(Excel 2013)'

옵션을 클릭하면 transform data파워 쿼리 편집기가 열립니다. 파일 목록이 표시됩니다.

열 헤더에 있는 버튼을 클릭하면 content모든 개별 CSV 파일을 추가하기 전에 변환할 수 있는 기능을 만들 수 있습니다.

올바른 테이블이나 워크시트를 선택하고 transform sample file함수에서 다음을 수행합니다.

  1. '헤더를 첫 번째 행으로 사용'을 사용하여 첫 번째 행에 열 이름을 삽입합니다.
  2. 조옮김 테이블

그런 다음 함수가 호출되는 쿼리에 전치된 CSV 파일이 추가됩니다. transpose테이블을 원래 모양으로 되돌리고 승격시키기 만 하면 됩니다 the first row to headers.

답변3

csv 파일을 열별로 결합하는 r 코드는 다음과 같습니다.

setwd("C:/mycsvdir")
filenames <- list.files(full.name=TRUE)

## read csv, skipping the first two rows of every file
Everything <- lapply(filenames, function(i){read.csv(i, header=TRUE, skip=2)}
combined.df <- do.call(cbind.data.frame, Everything)

write.csv(combined.df, file = "combined.csv", row.names=FALSE)

cbindcsv 파일을 행 별로 결합하려면 rbind.

편집: 병합 순서 정보: 내 csv 파일의 이름은 mycsv 001.csv, mycsv 002.csv등으로 지정됩니다. 해당 순서로 정확하게 읽고 병합되었으며 이는 내 목적에 적합했습니다.

관련 정보