Создать датасет csv python

Содержание
  1. Rukovodstvo
  2. статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
  3. Чтение и запись файлов CSV на Python с помощью Pandas
  4. Хотя вы можете читать и писать файлы CSV в Python, используя встроенную функцию open () или специальный модуль csv [https://docs.python.org/3/library/csv.html], вы также можете использовать Pandas . В этой статье вы увидите, как использовать библиотеку Python Pandas [https://pandas.pydata.org/] для чтения и записи файлов CSV. Что такое файл CSV? Давайте быстро напомним, что такое файл CSV — не что иное, как простой текстовый файл с соблюдением нескольких соглашений о форматировании. Однако это наиболее распространенный, простой и легкий
  5. Что такое файл CSV?
  6. Чтение и запись файлов CSV с помощью Pandas
  7. Установка Pandas
  8. Чтение файлов CSV с помощью read_csv ()
  9. Настройка заголовков
  10. Пропуск строк при чтении CSV
  11. Удаление заголовков
  12. Указание разделителей
  13. Запись файлов CSV с помощью to_csv ()
  14. Настройка заголовков
  15. Настройка разделителя
  16. Обработка отсутствующих значений
  17. Заключение

Rukovodstvo

статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.

Чтение и запись файлов CSV на Python с помощью Pandas

Хотя вы можете читать и писать файлы CSV в Python, используя встроенную функцию open () или специальный модуль csv [https://docs.python.org/3/library/csv.html], вы также можете использовать Pandas . В этой статье вы увидите, как использовать библиотеку Python Pandas [https://pandas.pydata.org/] для чтения и записи файлов CSV. Что такое файл CSV? Давайте быстро напомним, что такое файл CSV — не что иное, как простой текстовый файл с соблюдением нескольких соглашений о форматировании. Однако это наиболее распространенный, простой и легкий

Хотя вы можете читать и писать файлы CSV в Python, используя встроенную open() или специальный модуль csv, вы также можете использовать Pandas.

Читайте также:  Javascript format number with leading zero

В этой статье вы увидите, как использовать библиотеку Python Pandas для чтения и записи файлов CSV.

Что такое файл CSV?

Давайте быстро напомним, что такое файл CSV — не что иное, как простой текстовый файл с соблюдением нескольких соглашений о форматировании. Однако это наиболее распространенный, простой и легкий способ хранения табличных данных. Этот формат упорядочивает таблицы в соответствии с определенной структурой, разделенной на строки и столбцы. Именно в этих строках и столбцах содержатся ваши данные.

Новая строка завершает каждую строку, чтобы начать следующую строку. Точно так же разделитель, обычно запятая, разделяет столбцы в каждой строке.

Например, у нас может быть таблица, которая выглядит так:

 | City | State | Capital | Population | | ------------ | ------------ | ------- | ------------- | | Philadelphia | Pennsylvania | No | 1.581 Million | | Sacramento | California | Yes | 0.5 Million | | New York | New York | No | 8.623 Million | | Austin | Texas | Yes | 0.95 Million | | Miami | Florida | No | 0.463 Million | 

Если бы мы преобразовали его в формат CSV, это выглядело бы так:

 City,State,Capital,Population Philadelphia,Pennsylvania,No,1.581 Million Sacramento,California,Yes,0.5 Million New York,New York,No,8.623 Million Austin,Texas,Yes,0.95 Million Miami,Florida,No,0.463 Million 

Хотя имя (значения, разделенные запятыми) по своей сути использует запятую в качестве разделителя, вы также можете использовать другие разделители (разделители), такие как точка с запятой ( ; ). Каждая строка таблицы — это новая строка файла CSV, и это очень компактный и лаконичный способ представления табличных данных.

Теперь давайте посмотрим на read_csv() .

Чтение и запись файлов CSV с помощью Pandas

Pandas — очень мощный и популярный фреймворк для анализа и обработки данных. Одной из самых ярких особенностей Pandas является его способность читать и записывать различные типы файлов, включая CSV и Excel. Вы можете эффективно и легко управлять CSV-файлами в Pandas, используя такие функции, как read_csv() и to_csv() .

Установка Pandas

Мы должны установить Pandas перед его использованием. Давайте использовать pip :

Чтение файлов CSV с помощью read_csv ()

Давайте импортируем Titanic Dataset, который можно получить на GitHub :

 import pandas as pd titanic_data = pd.read_csv('titanic.csv') 

Pandas будет искать этот файл в каталоге сценария, естественно, и мы просто указываем путь к файлу, который хотим проанализировать, как единственный обязательный аргумент этого метода.

Давайте посмотрим на head() этого набора данных, чтобы убедиться, что он импортирован правильно:

 PassengerId Survived Pclass . Fare Cabin Embarked 0 1 0 3 . 7.2500 NaN S 1 2 1 1 . 71.2833 C85 C 2 3 1 3 . 7.9250 NaN S 3 4 1 1 . 53.1000 C123 S 4 5 0 3 . 8.0500 NaN S 

Кроме того, вы также можете читать файлы CSV с сетевых ресурсов, таких как GitHub, просто передав URL-адрес ресурса в read_csv() . Давайте прочитаем этот же CSV-файл из репозитория GitHub, не загружая его сначала на локальный компьютер:

 import pandas as pd titanic_data = pd.read_csv(r'https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv') print(titanic_data.head()) 
 PassengerId Survived Pclass . Fare Cabin Embarked 0 1 0 3 . 7.2500 NaN S 1 2 1 1 . 71.2833 C85 C 2 3 1 3 . 7.9250 NaN S 3 4 1 1 . 53.1000 C123 S 4 5 0 3 . 8.0500 NaN S [5 rows x 12 columns] 

Настройка заголовков

По умолчанию метод read_csv() использует первую строку файла CSV в качестве заголовков столбцов. Иногда у этих заголовков могут быть странные имена, и вы можете использовать свои собственные заголовки. Вы можете установить заголовки либо после чтения файла, просто присвоив columns области в DataFrame экземпляре другого список, или вы можете установить заголовки при чтении CSV в первую очередь.

Давайте определим список имен столбцов и будем использовать эти имена вместо имен из CSV-файла:

 import pandas as pd col_names = ['Id', 'Survived', 'Passenger Class', 'Full Name', 'Gender', 'Age', 'SibSp', 'Parch', 'Ticket Number', 'Price', 'Cabin', 'Station'] titanic_data = pd.read_csv(r'E:\Datasets\titanic.csv', names=col_names) print(titanic_data.head()) 
 Id Survived Passenger Class . Price Cabin Station 0 PassengerId Survived Pclass . Fare Cabin Embarked 1 1 0 3 . 7.25 NaN S 2 2 1 1 . 71.2833 C85 C 3 3 1 3 . 7.925 NaN S 4 4 1 1 . 53.1 C123 S 

Хм, теперь у нас есть собственные заголовки, но первая строка файла CSV, которая изначально использовалась для установки имен столбцов, также включена в DataFrame . Мы хотим пропустить эту строку, поскольку она больше не представляет для нас никакой ценности.

Пропуск строк при чтении CSV

skiprows эту проблему, используя аргумент skiprows:

 import pandas as pd col_names = ['Id', 'Survived', 'Passenger Class', 'Full Name', 'Gender', 'Age', 'SibSp', 'Parch', 'Ticket Number', 'Price', 'Cabin', 'Station'] titanic_data = pd.read_csv(r'E:\Datasets\titanic.csv', names=col_names, skiprows=[0]) print(titanic_data.head()) 

Теперь давайте запустим этот код:

 Id Survived Passenger Class . Price Cabin Station 0 1 0 3 . 7.2500 NaN S 1 2 1 1 . 71.2833 C85 C 2 3 1 3 . 7.9250 NaN S 3 4 1 1 . 53.1000 C123 S 4 5 0 3 . 8.0500 NaN S 

Работает как шарм! skiprows принимает список строк, которые вы хотите пропустить. Вы можете пропустить, например, 0, 4, 7 если хотите:

 titanic_data = pd.read_csv(r'E:\Datasets\titanic.csv', names=col_names, skiprows=[0, 4, 7]) print(titanic_data.head(10)) 

В результате DataFrame , в котором нет некоторых из строк, которые мы видели раньше:

 Id Survived Passenger Class . Price Cabin Station 0 1 0 3 . 7.2500 NaN S 1 2 1 1 . 71.2833 C85 C 2 3 1 3 . 7.9250 NaN S 3 5 0 3 . 8.0500 NaN S 4 6 0 3 . 8.4583 NaN Q 5 8 0 3 . 21.0750 NaN S 6 9 1 3 . 11.1333 NaN S 7 10 1 2 . 30.0708 NaN C 8 11 1 3 . 16.7000 G6 S 9 12 1 1 . 26.5500 C103 S 

Имейте в виду, что пропуск строк происходит до того, как DataFrame будет полностью сформирован, поэтому вы не пропустите никаких индексов самого DataFrame , хотя в этом случае вы можете увидеть, что Id (импортированное из файла CSV) отсутствует ID 4 и 7 .

Удаление заголовков

Вы также можете решить полностью удалить заголовок, что приведет к DataFrame который просто имеет 0. n столбцов заголовка, установив для аргумента header None :

 titanic_data = pd.read_csv(r'E:\Datasets\titanic.csv', header=None, skiprows=[0]) 

Вы также захотите пропустить здесь первую строку, поскольку в противном случае значения из первой строки будут фактически включены в первую строку:

 0 1 2 3 4 . 7 8 9 0 1 0 3 Braund, Mr. Owen Harris male . 0 A/5 21171 7.2500 1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th. female . 0 PC 17599 71.2833 2 3 1 3 Heikkinen, Miss. Laina female . 0 STON/O2. 3101282 7.9250 3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female . 0 113803 53.1000 4 5 0 3 Allen, Mr. William Henry male . 0 373450 8.0500 

Указание разделителей

Как было сказано ранее, вы, вероятно, столкнетесь с CSV-файлом, в котором для разделения данных на самом деле не используются запятые. В таких случаях вы можете использовать sep для указания других разделителей:

 titanic_data = pd.read_csv(r'E:\Datasets\titanic.csv', sep=';') 

Запись файлов CSV с помощью to_csv ()

Опять же, DataFrame являются табличными. Превратить DataFrame в файл CSV так же просто, как преобразовать файл CSV в DataFrame — мы вызываем write_csv() в экземпляре DataFrame

При записи DataFrame в файл CSV вы также можете изменить имена столбцов с помощью columns или указать разделитель с помощью аргумента sep Если вы не укажете ни один из них, вы получите стандартный файл значений, разделенных запятыми.

Давайте поиграемся с этим:

 import pandas as pd cities = pd.DataFrame([['Sacramento', 'California'], ['Miami', 'Florida']], columns=['City', 'State']) cities.to_csv('cities.csv') 

Здесь мы создали простой DataFrame с двумя городами и их соответствующими состояниями. Затем мы сохранили эти данные в файл CSV, используя to_csv() и указав имя файла.

В результате в рабочем каталоге выполняемого вами скрипта создается новый файл, который содержит:

 ,City,State 0,Sacramento,California 1,Miami,Florida 

Хотя это не совсем хорошо отформатировано. У нас все еще есть индексы из DataFrame , который также ставит странное пропущенное место перед именами столбцов. Если мы повторно импортируем этот CSV- DataFrame обратно в DataFrame, это будет беспорядок:

 df = pd.read_csv('cities.csv') print(df) 
 Unnamed: 0 City State 0 0 Sacramento California 1 1 Miami Florida 

Индексы из DataFrame превратились в новый столбец, который теперь называется Unnamed .

При сохранении файла, давайте удостоверимся , что уронить индекс DataFrame :

 import pandas as pd cities = pd.DataFrame([['Sacramento', 'California'], ['Miami', 'Florida']], columns=['City', 'State']) cities.to_csv('cities.csv', index=False) 

Теперь это приводит к файлу, который содержит:

 City,State Sacramento,California Miami,Florida 

Работает как шарм! Если мы повторно импортируем его и распечатаем содержимое, DataFrame будет построен правильно:

 df = pd.read_csv('cities.csv') print(df) 
 City State 0 Sacramento California 1 Miami Florida 

Настройка заголовков

Давайте изменим заголовки столбцов с заголовков по умолчанию:

 import pandas as pd cities = pd.DataFrame([['Sacramento', 'California'], ['Miami', 'Florida']], columns=['City', 'State']) new_column_names = ['City_Name', 'State_Name'] cities.to_csv('cities.csv', index=False, header=new_column_names) 

Мы new_header список new_header, который содержит разные значения для наших столбцов. Затем, используя header , мы установили их вместо исходных имен столбцов. Будет создан cities.csv с таким содержимым:

 City_Name,State_Name Sacramento,California Miami,Florida Washington DC,Unknown 

Настройка разделителя

Давайте изменим разделитель со значения по умолчанию ( , ) на новый:

 import pandas as pd cities = pd.DataFrame([['Sacramento', 'California'], ['Miami', 'Florida']], columns=['City', 'State']) cities.to_csv('cities.csv', index=False, sep=';') 

В результате cities.csv файл cities.csv, содержащий:

 City;State Sacramento;California Miami;Florida 

Обработка отсутствующих значений

Иногда в DataFrame отсутствуют значения, которые мы оставили как NaN или NA . В таких случаях вы можете отформатировать их при записи в файл CSV. Вы можете использовать na_rep и установить значение, которое будет помещено вместо отсутствующего значения:

 import pandas as pd cities = pd.DataFrame([['Sacramento', 'California'], ['Miami', 'Florida'], ['Washington DC', pd.NA]], columns=['City', 'State']) cities.to_csv('cities.csv', index=False, na_rep='Unknown') 

Здесь у нас есть две допустимые пары город-государство, но Washington DC имеет своего штата. Если мы запустим этот код, это приведет к созданию cities.csv следующего содержания:

 City,State Sacramento,California Miami,Florida Washington DC,Unknown 

Заключение

В статье показано, как читать и записывать файлы CSV с помощью библиотеки Python Pandas. Для чтения файла CSV используется метод read_csv() библиотеки Pandas. Вы также можете передать пользовательские имена заголовков при чтении CSV файлов через names атрибута read_csv() метод. Наконец, для записи в файл CSV с помощью панд, вы должны сначала создать объект Панды DataFrame , а затем вызвать to_csv метод на DataFrame.

Licensed under CC BY-NC-SA 4.0

Источник

Оцените статью