>백엔드 개발 >파이썬 튜토리얼 >csv 형식 파일을 읽고 쓰는 Python의 방법에 대한 자세한 설명

csv 형식 파일을 읽고 쓰는 Python의 방법에 대한 자세한 설명

高洛峰
高洛峰원래의
2017-03-19 15:52:392955검색

Python은 csv 형식 파일을 읽고 씁니다

데이터 분석에서는 csv 형식 파일의 데이터에 액세스하여 csv 파일에 데이터를 써야 하는 경우가 많습니다. csv 파일의 데이터를 dict 유형과 DataFrame으로 직접 읽는 것은 매우 편리하고 문제가 없습니다. 다음 코드는 붓꽃 데이터를 예로 사용합니다.

CSV 파일을 dict

코드

# -*- 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为每条数据的处理函数

dict 유형의 여러 데이터를 csv 파일에 쓰기

코드

#   数据
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으로 읽기

코드

# 读取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)

DataFrame은 csv 파일을 씁니다

dfrme.to_csv('E:/dst.csv', index=False) # 不要每行的编号

위 내용은 csv 형식 파일을 읽고 쓰는 Python의 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.