데이터 분석에서는 csv 형식 파일의 데이터에 액세스하여 csv 파일에 데이터를 써야 하는 경우가 많습니다. csv 파일의 데이터를 dict 유형과 DataFrame으로 직접 읽는 것은 매우 편리하고 문제가 없습니다. 다음 코드는 붓꽃 데이터를 예로 사용합니다.
코드
# -*- coding: utf-8 -*- import csv with open('E:/iris.csv') as csvfile: reader = csv.DictReader(csvfile, fieldnames=None) # fieldnames默认为None,如果所读csv文件没有表头,则需要指定 list_1 = [e for e in reader] # 每行数据作为一个dict存入链表中 csvfile.close() print list_1[0]
출력
{'Petal.Length': '1.4', 'Sepal.Length': '5.1', 'Petal.Width': '0.2', 'Sepal.Width': '3.5', 'Species': 'setosa'}
읽은 각 데이터 조각을 별도로 처리해야 하는 경우 데이터의 양 크기가 크므로, 하나씩 처리한 후 넣는 것이 좋습니다.
list_1 = list() for e in reader: list_1.append(your_func(e)) # your_func为每条数据的处理函数
코드
# 数据 data = [ {'Petal.Length': '1.4', 'Sepal.Length': '5.1', 'Petal.Width': '0.2', 'Sepal.Width': '3.5', 'Species': 'setosa'}, {'Petal.Length': '1.4', 'Sepal.Length': '4.9', 'Petal.Width': '0.2', 'Sepal.Width': '3', 'Species': 'setosa'}, {'Petal.Length': '1.3', 'Sepal.Length': '4.7', 'Petal.Width': '0.2', 'Sepal.Width': '3.2', 'Species': 'setosa'}, {'Petal.Length': '1.5', 'Sepal.Length': '4.6', 'Petal.Width': '0.2', 'Sepal.Width': '3.1', 'Species': 'setosa'} ] # 表头 header = ['Petal.Length', 'Sepal.Length', 'Petal.Width', 'Sepal.Width', 'Species'] print len(data) with open('E:/dst.csv', 'wb') as dstfile: #写入方式选择wb,否则有空行 writer = csv.DictWriter(dstfile, fieldnames=header) writer.writeheader() # 写入表头 writer.writerows(data) # 批量写入 dstfile.close()
위 코드는 데이터 양이 충분할 경우 전체 데이터를 csv 파일에 씁니다. 얼마나 많은 데이터가 기록되었는지 실시간으로 확인하려면 writerows 함수를 사용하세요.
코드
# 读取csv文件为DataFrame import pandas as pd dframe = pd.DataFrame.from_csv('E:/iris.csv')
약간 비틀 수도 있습니다.
import csv import pandas as pd with open('E:/iris.csv') as csvfile: reader = csv.DictReader(csvfile, fieldnames=None) # fieldnames默认为None,如果所读csv文件没有表头,则需要指定 list_1 = [e for e in reader] # 每行数据作为一个dict存入链表中 csvfile.close() dfrme = pd.DataFrame.from_records(list_1)
dfrme.to_csv('E:/dst.csv', index=False) # 不要每行的编号
위 내용은 csv 형식 파일을 읽고 쓰는 Python의 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!