반응형
내가 사용하는 코드는 다음과 같습니다.
import csv
with open('combined_file.csv', 'w', newline='') as outcsv:
writer = csv.DictWriter(outcsv, fieldnames = ["Date", "temperature 1", "Temperature 2"])
writer.writeheader()
with open('t1.csv', 'r', newline='') as incsv:
reader = csv.reader(incsv)
writer.writerows(row + [0.0] for row in reader)
with open('t2.csv', 'r', newline='') as incsv:
reader = csv.reader(incsv)
writer.writerows(row[:1] + [0.0] + row[1:] for row in reader)
해결 방법
DictWriter ()
클래스는 각 행에 대해 dictionaries 를 예상합니다. 원하는 것이 초기 헤더를 작성하는 것뿐이라면 일반 csv.writer ()
를 사용하고 헤더에 대한 간단한 행을 전달합니다.
import csv
with open('combined_file.csv', 'w', newline='') as outcsv:
writer = csv.writer(outcsv)
writer.writerow(["Date", "temperature 1", "Temperature 2"])
with open('t1.csv', 'r', newline='') as incsv:
reader = csv.reader(incsv)
writer.writerows(row + [0.0] for row in reader)
with open('t2.csv', 'r', newline='') as incsv:
reader = csv.reader(incsv)
writer.writerows(row[:1] + [0.0] + row[1:] for row in reader)
대안은 데이터를 복사 할 때 사전을 생성하는 것입니다.
import csv
with open('combined_file.csv', 'w', newline='') as outcsv:
writer = csv.DictWriter(outcsv, fieldnames = ["Date", "temperature 1", "Temperature 2"])
writer.writeheader()
with open('t1.csv', 'r', newline='') as incsv:
reader = csv.reader(incsv)
writer.writerows({'Date': row[0], 'temperature 1': row[1], 'temperature 2': 0.0} for row in reader)
with open('t2.csv', 'r', newline='') as incsv:
reader = csv.reader(incsv)
writer.writerows({'Date': row[0], 'temperature 1': 0.0, 'temperature 2': row[1]} for row in reader)
참조 페이지 https://stackoverflow.com/questions/20347766
반응형
'파이썬' 카테고리의 다른 글
파이썬 Pandas : dict에서 DataFrame에 명명 된 열 만들기 (0) | 2020.12.29 |
---|---|
파이썬 numpy 배열 행 주 및 열 주 (0) | 2020.12.29 |
파이썬 초보자 Python (프로그래밍 초보자는 아님) 개발자를 위해 좋은 프로젝트는 무엇입니까? (0) | 2020.12.29 |
파이썬 Django 양식에서 오류 목록 가져 오기 (0) | 2020.12.29 |
파이썬 django-get_or_create를 사용하여 사용자가 자동으로 생성 될 때 사용자 권한 설정 (0) | 2020.12.29 |
댓글