[PYTHON] Python으로 csv 파일에 헤더 추가
PYTHONPython으로 csv 파일에 헤더 추가
필자는 두 개의 CSV 파일을 병합하는 Python 스크립트를 작성했으며 이제 최종 CSV에 헤더를 추가하려고합니다. 여기에 제안 된 제안을 따르려고했는데 다음 오류가 발생했습니다. expected string, float found. 가장 고약한 방법은 무엇입니까?
다음은 사용중인 코드입니다.
import csv
with open('combined_file.csv', 'wb') as outcsv:
writer = csv.DictWriter(outcsv, fieldnames = ["Date", "temperature 1", "Temperature 2"])
writer.writeheader()
with open('t1.csv', 'rb') as incsv:
reader = csv.reader(incsv)
writer.writerows(row + [0.0] for row in reader)
with open('t2.csv', 'rb') as incsv:
reader = csv.reader(incsv)
writer.writerows(row[:1] + [0.0] + row[1:] for row in reader)
해결법
-
==============================
1.DictWriter () 클래스는 각 행에 대해 사전을 필요로합니다. 처음 헤더를 쓰고 싶다면 일반 csv.writer ()를 사용하고 헤더에 간단한 행을 전달하십시오.
DictWriter () 클래스는 각 행에 대해 사전을 필요로합니다. 처음 헤더를 쓰고 싶다면 일반 csv.writer ()를 사용하고 헤더에 간단한 행을 전달하십시오.
import csv with open('combined_file.csv', 'wb') as outcsv: writer = csv.writer(outcsv) writer.writerow(["Date", "temperature 1", "Temperature 2"]) with open('t1.csv', 'rb') as incsv: reader = csv.reader(incsv) writer.writerows(row + [0.0] for row in reader) with open('t2.csv', 'rb') 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', 'wb') as outcsv: writer = csv.DictWriter(outcsv, fieldnames = ["Date", "temperature 1", "Temperature 2"]) writer.writeheader() with open('t1.csv', 'rb') 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', 'rb') as incsv: reader = csv.reader(incsv) writer.writerows({'Date': row[0], 'temperature 1': 0.0, 'temperature 2': row[1]} for row in reader)
-
==============================
2.루프를 실행하기 전에 하나의 행만 추가하면됩니다. 이 행에는 다음이 포함됩니다. CSV 파일 헤더 이름
루프를 실행하기 전에 하나의 행만 추가하면됩니다. 이 행에는 다음이 포함됩니다. CSV 파일 헤더 이름
schema = ['a','b','c','b'] row = 4 generators = ['A','B','C','D'] with open('test.csv','wb') as csvfile: writer = csv.writer(csvfile, delimiter=delimiter) # Gives the header name row into csv writer.writerow([g for g in schema]) #Data add in csv file for x in xrange(rows): writer.writerow([g() for g in generators])
-
==============================
3.이것은 나를 위해 일했다.
이것은 나를 위해 일했다.
header = ['row1', 'row2', 'row3'] some_list = [1, 2, 3] with open('test.csv', 'wt', newline ='') as file: writer = csv.writer(file, delimiter=',') writer.writerow(i for i in header) for j in some_list: writer.writerow(j)
from https://stackoverflow.com/questions/20347766/pythonically-add-header-to-a-csv-file by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 문자열에서 빈 줄을 제거하는 빠른 일렬 라이너 란 무엇입니까? (0) | 2018.10.29 |
---|---|
[PYTHON] WHERE를 사용하여 SQLAlchemy Core의 일괄 업데이트 (0) | 2018.10.29 |
[PYTHON] 파이썬에서의 엡실론 값 (0) | 2018.10.29 |
[PYTHON] 파이썬 : 주어진 날짜로부터 주 데이터의 시작과 끝주기 (0) | 2018.10.29 |
[PYTHON] 모듈을 가져 오는 위치는 어디입니까? (0) | 2018.10.29 |