Как да прочетете CSV файл в Python (Модул, примери за Pandas)

Какво е CSV файл?

A CSV файл е прост тип обикновен текстов файл, който използва специфична структура за подреждане на таблични данни. Стандартният формат на CSV файл се определя от данни в редове и колони, където нов ред завършва всеки ред, за да започне следващия ред, а всяка колона е разделена със запетая в рамките на реда.

CSV е често срещан формат за обмен на данни, тъй като е компактен, прост и общ. Много онлайн услуги позволяват на своите потребители да експортират таблични данни от уебсайта в CSV файл. CSV файловете ще се отварят в Excel и почти всички бази данни имат инструмент, позволяващ импортиране от CSV файлове.

CSV примерен файл

Данните под формата на таблици се наричат ​​още CSV (стойности, разделени със запетая) – буквално „стойности, разделени със запетая“. Това е текстов формат, предназначен за представяне на таблични данни. Всеки ред от файла е един ред от таблицата. Стойностите на отделните колони се разделят с разделителен символ – запетая (,), точка и запетая (;) или друг символ. CSV може лесно да се чете и обработва от Python.

Разгледайте следната таблица

TableData

Програмен език Проектирана от Яви Разширение
Python Гуидо ван Россум 1991 .py
Java Джеймс Гослинг 1995 .Java
C++ Бьерн Страуструп 1983 .cpp

Можете да представите тази таблица в csv, както е показано по-долу.

CSV данни

Език за програмиране, Проектиран от, Появил се, Разширение

Python, Guido van Rossum, 1991, .py

Java, Джеймс Гослинг, 1995, .java

C++, Bjarne Stroustrup, 1983,.cpp

Както можете да видите, всеки ред е нов ред и всяка колона е разделена със запетая. Това е пример за това как изглежда CSV файл.

Изтеглете CSV данни

Python CSV модул

Python предоставя CSV модул за обработка на CSV файлове. За да четете/записвате данни, трябва да преминете през редовете на CSV. Трябва да използвате метода на разделяне, за да получите данни от определени колони.

Функции на CSV модула

В документацията на CSV модула можете да намерите следните функции:

  • csv.field_size_limit – връща максималния размер на полето
  • csv.get_dialect – вземете диалекта, който е свързан с името
  • csv.list_dialects – показва всички регистрирани диалекти
  • csv.reader – чете данни от csv файл
  • csv.register_dialect – свързване на диалект с име
  • csv.writer – запис на данни в csv файл
  • csv.unregister_dialect – изтриване на диалекта, свързан с името на регистъра на диалекта
  • csv.QUOTE_ALL – Цитирайте всичко, независимо от вида.
  • csv.QUOTE_MINIMAL – Полета за кавички със специални знаци
  • csv.QUOTE_NONNUMERIC – Поставете в кавички всички полета, които не са числови стойности
  • csv.QUOTE_NONE – Не цитирайте нищо в резултата

В този урок ще се съсредоточим само върху функциите за четене и запис, които ви позволяват да редактирате, модифицирате и манипулирате данните в CSV файл.

Как да прочетете CSV файл в Python

По-долу са описани стъпките за четене на CSV файл Python.

Стъпка 1) За да четете данни от CSV файлове, трябва да използвате функцията reader, за да генерирате обект reader.

Функцията за четене е разработена, за да вземе всеки ред от файла и да направи списък на всички колони. След това трябва да изберете колоната, за която искате променливите данни.

Звучи много по-сложно, отколкото е. Нека да разгледаме това Python код за четене на CSV файл и ще разберем, че работата с csv файл не е толкова трудна.

#import necessary modules
import csv
with open('X:\data.csv','rt')as f:
  data = csv.reader(f)
  for row in data:
        print(row)

Стъпка 2) Когато изпълните програмата по-горе, изходът ще бъде:

['Programming language; Designed by; Appeared; Extension']
['Python; Guido van Rossum; 1991; .py']
['Java; James Gosling; 1995; .java']
['C++; Bjarne Stroustrup;1983;.cpp']

Как да прочетете CSV файл в речник в Python

Можете също да използвате DictReader за четене на CSV файлове. Резултатите се интерпретират като речник, където заглавният ред е ключът, а другите редове са стойности.

Разгледайте следния код

#import necessary modules
import csv

reader = csv.DictReader(open("file2.csv"))
for raw in reader:
    print(raw)

Резултатът от този код е:

OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])
OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])
OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])

Прочетете CSV файл в речник

И този начин за четене на данни от CSV файл е много по-лесен от предишния метод. Това обаче не е най-добрият начин за четене на данни.

Как да напиша CSV файл Python

Ето как да напишете CSV файл Python:

Когато имате набор от данни, които искате да съхраните в CSV файл, трябва да използвате функцията writer(). За да итерирате данните в редовете (редовете), трябва да използвате функцията writerow().

Помислете за следния пример. Записваме данни във файл „writeData.csv“, където разделителят е апостроф.

#import necessary modules
import csv

with open('X:\writeData.csv', mode='w') as file:
    writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

    #way to write to csv file
    writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])
    writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])
    writer.writerow(['Java', 'James Gosling', '1995', '.java'])
    writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])

Резултатът в csv файла е:

Programming language, Designed by, Appeared, Extension 
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp

запишете CSV файл Python

Прочетете CSV файл с помощта на Pandas

Pandas е библиотека с отворен код, която ви позволява да импортирате CSV Python и да извършва манипулиране на данни. Pandas предоставя лесен начин за създаване, манипулиране и изтриване на данни.

Трябва да инсталирате pandas библиотека с командата pip install pandas . в Windows, ще изпълните тази команда в командния ред, докато сте в Linux в терминала.

Четенето на CSV в pandas DataFrame е много бързо и лесно:

#import necessary modules
import pandas
result = pandas.read_csv('X:\data.csv')
print(result)

Резултат от прочетете CSV Pandas Например:

Programming language, Designed by, Appeared, Extension 
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

Много полезна библиотека. Само с три реда код получавате същия резултат, както преди. Pandas знае, че първият ред на CSV съдържа имена на колони и ще ги използва автоматично.

Напишете CSV файл с помощта на Pandas

Писането в CSV файл с Pandas е толкова лесно, колкото и четенето. Тук можете да се убедите в това. Първо трябва да създадете DataFrame въз основа на следното Python пишете в CSV код.

from pandas import DataFrame
C = {'Programming language': ['Python','Java', 'C++'],
        'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],
        'Appeared': ['1991', '1995', '1985'],
        'Extension': ['.py', '.java', '.cpp'],
    }
df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])
export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored
print (df)

Ето изхода

Programming language, Designed by, Appeared, Extension
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

И CSV файлът се създава на посоченото място.

Напишете CSV файл с помощта на Pandas

Заключение

И така, сега знаете как да използвате метода 'csv' и също така да четете и записвате данни в CSV формат. CSV файловете се използват широко в софтуерни приложения, защото са лесни за четене и управление, а малкият им размер ги прави относително бързи за обработка и предаване.

Модулът csv предоставя различни функции и класове, които ви позволяват да четете и пишете лесно. Можете да погледнете официалния Python документация и намерете още интересни съвети и модули. CSV е най-добрият начин за запазване, преглед и изпращане на данни. Всъщност не е толкова трудно да се научи, колкото изглежда в началото. Но с малко практика ще го овладеете.

Pandas е чудесна алтернатива за четене на CSV файлове.

Освен това има други начини за анализиране на текстови файлове с библиотеки като ANTLR, PLY и PlyPlus. Всички те могат да се справят с тежки анализи и ако простото манипулиране на низове не работи, има регулярни изрази, които можете да използвате.