Python에서 csv 파일 작업
에이 CSV(쉼표로 구분된 값) 파일 각 줄은 데이터 레코드를 나타내고 각 레코드 내의 필드는 쉼표로 구분되는 일반 텍스트 파일입니다. 단순성과 가독성으로 인해 스프레드시트와 데이터베이스에 일반적으로 사용됩니다.
다음은 Python에서 Python CSV 파일을 작업하는 동안 수행하는 몇 가지 작업입니다.
CSV 파일 읽기
CSV 파일 읽기는 reader 개체를 사용하여 수행됩니다. CSV 파일은 파일 객체를 반환하는 Python의 내장 open() 함수를 사용하여 텍스트 파일로 열립니다. 이 예에서는 먼저 READ 모드에서 CSV 파일을 엽니다. 파일 객체는 csv.reader 객체로 변환되고 추가 작업이 수행됩니다. 코드와 자세한 설명은 아래와 같습니다.
Python
import csv filename = 'aapl.csv' # File name fields = [] # Column names rows = [] # Data rows with open ( filename 'r' ) as csvfile : csvreader = csv . reader ( csvfile ) # Reader object fields = next ( csvreader ) # Read header for row in csvreader : # Read rows rows . append ( row ) print ( 'Total no. of rows: %d ' % csvreader . line_num ) # Row count print ( 'Field names are: ' + ' ' . join ( fields )) print ( ' n First 5 rows are: n ' ) for row in rows [: 5 ]: for col in row : print ( ' %10s ' % col end = ' ' ) print ( ' n ' )
산출
위의 예에서는 CSV 파일을 사용합니다. aapl.csv 다음에서 다운로드할 수 있습니다. 여기 .
설명:
- 오픈(...) 컨텍스트 관리자를 사용하여 안전하게 읽기 모드에서 CSV 파일을 엽니다.
- csv.reader(csv파일) 파일을 CSV 리더 개체로 변환합니다.
- 다음(csvreader) 첫 번째 행을 열 머리글로 추출합니다.
- 루프스루 csvreader 각 행을 목록으로 행에 추가합니다.
- 형식화된 보기에서 총 행 헤더와 처음 5개 데이터 행을 인쇄합니다.
csv를 사용하여 CSV 파일을 사전으로 읽기
Python의 csv 모듈과 csv.DictReader 클래스를 사용하여 CSV 파일을 사전으로 읽을 수 있습니다. 예는 다음과 같습니다.
우리가 직원.csv 그 안에 있는 파일과 콘텐츠는 다음과 같습니다.
명명된 아파트생일_월
John SmithHR7월
앨리스 존슨IT10월
Bob Williams금융1월
예: 이는 각 행을 사전(헤더를 키로)으로 읽은 다음 이를 list 에 추가합니다.
Python import csv with open ( 'employees.csv' mode = 'r' ) as file : csv_reader = csv . DictReader ( file ) # Create DictReader data_list = [] # List to store dictionaries for row in csv_reader : data_list . append ( row ) for data in data_list : print ( data )
산출:
{'이름': 'John Smith' '부서': 'HR' '생일_월': '7월'}
{'이름': '앨리스 존슨' '부서': 'IT' '생일_월': '10월'}
{'이름': '밥 윌리엄스' '부서': '재정' '생일_월': '1월'}
설명:
- 오픈(...) 컨텍스트 관리자를 사용하여 파일을 엽니다.
- csv.DictReader(파일) 헤더를 키로 사용하여 각 행을 사전으로 읽습니다.
- data_list.append(행) 각 사전을 목록에 저장합니다.
CSV 파일에 쓰기
CSV 파일에 쓰려면 먼저 쓰기 모드에서 CSV 파일을 엽니다. 파일 객체는 csv.writer 객체로 변환되고 추가 작업이 수행됩니다. 코드와 자세한 설명은 아래와 같습니다.
Python import csv # Define header and data rows fields = [ 'Name' 'Branch' 'Year' 'CGPA' ] rows = [ [ 'Nikhil' 'COE' '2' '9.0' ] [ 'Sanchit' 'COE' '2' '9.1' ] [ 'Aditya' 'IT' '2' '9.3' ] [ 'Sagar' 'SE' '1' '9.5' ] [ 'Prateek' 'MCE' '3' '7.8' ] [ 'Sahil' 'EP' '2' '9.1' ] ] filename = 'university_records.csv' with open ( filename 'w' ) as csvfile : csvwriter = csv . writer ( csvfile ) # Create writer object csvwriter . writerow ( fields ) # Write header csvwriter . writerows ( rows ) # Write multiple rows
설명:
- 전지 열 머리글을 정의하고 행에는 데이터가 목록 목록으로 포함되어 있습니다.
- ~와 함께 열다(... 'w') 컨텍스트 관리자를 사용하여 쓰기 모드로 파일을 엽니다.
- csv.writer(csv파일) CSV에 쓰기 위한 작성기 개체를 만듭니다.
- writerow(필드) 헤더 행을 파일에 씁니다.
- 쓰기 행(행) 모든 데이터 행을 한 번에 CSV에 씁니다.
CSV 파일에 사전 쓰기
사전을 CSV 파일에 쓰려면 파일 객체(csvfile)가 DictWriter 객체로 변환됩니다. 설명과 코드가 포함된 자세한 예는 다음과 같습니다.
Python # importing the csv module import csv # my data rows as dictionary objects mydict = [{ 'branch' : 'COE' 'cgpa' : '9.0' 'name' : 'Nikhil' 'year' : '2' } { 'branch' : 'COE' 'cgpa' : '9.1' 'name' : 'Sanchit' 'year' : '2' } { 'branch' : 'IT' 'cgpa' : '9.3' 'name' : 'Aditya' 'year' : '2' } { 'branch' : 'SE' 'cgpa' : '9.5' 'name' : 'Sagar' 'year' : '1' } { 'branch' : 'MCE' 'cgpa' : '7.8' 'name' : 'Prateek' 'year' : '3' } { 'branch' : 'EP' 'cgpa' : '9.1' 'name' : 'Sahil' 'year' : '2' }] # field names fields = [ 'name' 'branch' 'year' 'cgpa' ] # name of csv file filename = 'university_records.csv' # writing to csv file with open ( filename 'w' ) as csvfile : # creating a csv dict writer object writer = csv . DictWriter ( csvfile fieldnames = fields ) # writing headers (field names) writer . writeheader () # writing data rows writer . writerows ( mydict )
산출
CSV 파일 일반 텍스트 형식의 CSV 파일은 다음과 같습니다.
대학 기록 설명:
- 오픈(...) 컨텍스트 관리자를 사용하여 안전하게 파일을 엽니다.
- csv.DictWriter(... ) 사전 키를 CSV 열에 매핑합니다.
- 쓰기헤더() 열 헤더를 씁니다.
- 작가(mydict) 모든 사전을 CSV 행으로 작성합니다.
Pandas로 CSV 파일 읽기
우리는 읽을 수 있습니다 파이썬 CSV Pandas가 사용하는 파일 pandas.read_csv() 기능. 예는 다음과 같습니다.
Employees.csv 파일이 있고 그 안에 콘텐츠가 다음과 같다고 가정해 보겠습니다.
명명된 아파트생일_월
John SmithHR7월
앨리스 존슨IT10월
Bob Williams금융1월
이 예제에서 pd.read_csv()는 CSV 파일을 Pandas DataFrame으로 읽습니다. 결과 DataFrame은 다양한 데이터 조작 및 분석 작업에 사용될 수 있습니다.
Python import pandas as pd # Read the CSV file into a DataFrame df = pd . read_csv ( 'employees.csv' ) # Display the DataFrame print ( df )
산출:
이름 부서 생일_월
0 John Smith HR 7월
1 앨리스 존슨 IT 10월
2 밥 윌리엄스 재무 1월
특정 열 필터 데이터에 액세스하고 pandas DataFrame 기능을 사용하여 다양한 작업을 수행할 수 있습니다. 예를 들어 'name' 열에 액세스하려면 df['name']을 사용할 수 있습니다.
Python # Access the 'name' column names = df [ 'name' ] print ( names )
산출 :
0 존 스미스
1 앨리스 존슨
2 밥 윌리엄스
이름: 이름 dtype: 개체
Pandas로 CSV 파일 작성
Pandas를 사용하여 CSV 파일을 작성할 수 있습니다. 다음을 사용하여 수행할 수 있습니다. pd.데이터프레임() 기능. 이 예에서는 팬더 라이브러리는 사전 목록(mydict)을 표 형식 데이터를 나타내는 DataFrame으로 변환하는 데 사용됩니다. 그런 다음 DataFrame은 추가 분석 또는 공유를 위해 구조화되고 판독 가능한 데이터 파일을 생성하는 to_csv 메서드를 사용하여 'output.csv'라는 Python CSV 파일에 기록됩니다.
Python import pandas as pd mydict = [ { 'branch' : 'COE' 'cgpa' : '9.0' 'name' : 'Nikhil' 'year' : '2' } { 'branch' : 'COE' 'cgpa' : '9.1' 'name' : 'Sanchit' 'year' : '2' } { 'branch' : 'IT' 'cgpa' : '9.3' 'name' : 'Aditya' 'year' : '2' } { 'branch' : 'SE' 'cgpa' : '9.5' 'name' : 'Sagar' 'year' : '1' } { 'branch' : 'MCE' 'cgpa' : '7.8' 'name' : 'Prateek' 'year' : '3' } { 'branch' : 'EP' 'cgpa' : '9.1' 'name' : 'Sahil' 'year' : '2' } ] # Create a DataFrame from the list of dictionaries df = pd . DataFrame ( mydict ) # Write the DataFrame to a CSV file df . to_csv ( 'output.csv' index = False )
출력 CSV 파일:
Branchcgpanameyear
COE9.0니킬2
COE9.1산칫2
IT9.3Aditya2
SE9.5사가르1
MCE7.8Prateek3
EP9.1사힐2
이메일을 CSV 파일로 저장하기
먼저 csv 모듈을 가져오고 이를 사용하여 이름과 이메일을 쉼표로 구분된 값으로 저장합니다. open() 함수를 사용하여 CSV 파일을 만든 다음 이름과 이메일에 대한 별도의 열이 있는 작성기 개체를 사용하여 각 행을 씁니다.
Python # importing the csv module import csv # field names fields = [ 'Name' 'Email' ] # data rows of csv file rows = [ [ 'Nikhil' '[email protected]' ] [ 'Sanchit' '[email protected]' ] [ 'Aditya' '[email protected]' ] [ 'Sagar' '[email protected]' ] [ 'Prateek' '[email protected]' ] [ 'Sahil' '[email protected]' ]] # name of csv file filename = 'email_records.csv' # writing to csv file with open ( filename 'w' ) as csvfile : # creating a csv writer object csvwriter = csv . writer ( csvfile ) # writing the fields csvwriter . writerow ( fields ) # writing the data rows csvwriter . writerows ( rows )
산출:
CSV로 된 이메일 퀴즈 만들기