Python에서 csv 파일 작업

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  '  )   

산출

Python에서 csv 파일 작업

위의 예에서는 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  )   

산출

Python에서 csv 파일 작업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로 된 이메일CSV로 된 이메일 퀴즈 만들기

인기 기사

범주

재미있는 기사