Проблема : Как преобразовать список списков на CSV
файл?
Пример : Дано это Список список – Для примера зарплата данных сотрудников в данной компании:
salary = [['Alice', 'Data Scientist', 122000], ['Bob', 'Engineer', 77000], ['Ann', 'Manager', 119000]]
Ваша цель – написать содержание списка списков в Comma-разделенные значения (CSV) Формат файла. Ваш налей должен выглядеть так:
# file.csv Alice,Data Scientist,122000 Bob,Engineer,77000 Ann,Manager,119000
Решение: Есть четыре простых способа конвертировать Список списков к файлу CSV в Python Отказ
- CSV : Импортируйте
CSV
модуль В Python создайте объект Writer CSV и напишите список списков в файл в использованииписатель ()
Способ на объекте писателя. - Пандас : Импортируйте Библиотека Pandas Создайте PandaFrame PandaSAframe и напишите файл dataframe в файл с помощью метода dataframe
Dataframe.to_csv ('file.csv')
Отказ - Numpy : Импортируйте Numpy Library Создайте Numpy Array и напишите вывод в файл CSV, используя
numpy.savetxt ('file.csv, массив,)
метод. - Python : Используйте чистый Python Реализация, которая не требует никакой библиотеки с помощью функциональности ввода-вывода файла Python.
Мое предпочтение это метод 2 ( Pandas ) Поскольку это проще всего использовать и самые надежные для разных типов ввода (численное или текстовое).
Прежде чем мы погрузимся в эти методы более подробно, не стесняйтесь играть с ними в нашем интерактивном коде. Просто нажмите кнопку «Запустить» и найдите сгенерированные файлы CSV в вкладке «Файлы».
Вы хотите развивать навыки Хорошо округлый Python Professional То же оплачивается в процессе? Станьте питоном фрилансером и закажите свою книгу Оставляя крысиную гонку с Python На Amazon ( Kindle/Print )!
Метод 1: модуль CSV Python
Вы можете легко преобразовать список списков в файл CSV в Python, используя CSV библиотека. Это наиболее настраивается из всех четырех методов.
salary = [['Alice', 'Data Scientist', 122000], ['Bob', 'Engineer', 77000], ['Ann', 'Manager', 119000]] # Method 1 import csv with open('file.csv', 'w', newline='') as f: writer = csv.writer(f) writer.writerows(salary)
Выход:
# file.csv Alice,Data Scientist,122000 Bob,Engineer,77000 Ann,Manager,119000
В коде вы впервые откроете файл, используя стандарт Python Открыть ()
команда. Теперь вы можете написать контент на файл объект F
Отказ
Далее вы передаете этот файл объект к конструктору писателя CSV, который реализует некоторый дополнительный метод помощника – и эффективно оборачивает объект файла, предоставляющий вам новые функции CSV, такие как писатель ()
метод.
Теперь вы передаете список списков к писатель ()
Способ CSV-писателя, который заботится о преобразовании списка списков в формат CSV.
Вы можете настроить писатель CSV в своем конструкторе (например, путем изменения разделителя от запятой ','
пробел ''
характер). Посмотрите на спецификацию, чтобы узнать о Расширенные модификации Отказ
Способ 2: Pandas dataframe to_csv ()
Вы можете преобразовать список списков на Пандас DataFrame, который предоставляет вам мощные возможности, такие как to_csv ()
Метод Отказ Это самый простой способ, и он позволяет избежать импорта еще одной библиотеки (Я использую Pandas во многих проектах Python в любом случае).
salary = [['Alice', 'Data Scientist', 122000], ['Bob', 'Engineer', 77000], ['Ann', 'Manager', 119000]] # Method 2 import pandas as pd df = pd.DataFrame(salary) df.to_csv('file2.csv', index=False, header=False)
Выход:
# file2.csv Alice,Data Scientist,122000 Bob,Engineer,77000 Ann,Manager,119000
Вы создаете PandaFrame PandaFrame – это представление по умолчанию Python в табличных данных. Подумайте об этом как электронную таблицу Excel в вашем коде (со строками и столбцами).
DataFrame – это очень мощная структура данных, которая позволяет выполнять различные методы. Один из них to_csv ()
Способ, который позволяет записать его содержимое в файл CSV.
Вы установили индекс
и Заголовок
Аргументы to_csv ()
Метод Ложь
Поскольку Pandas, по умолчанию, добавляет целочисленные строки и индексы столбцов 0, 1, 2, …. Опять же, подумайте о них как о показателях ряда и столбцов в вашей электронной таблице Excel. Вы не хотите, чтобы они появлялись в файле CSV, чтобы вы установили аргументы в Ложь
Отказ
Если вы хотите настроить выход CSV, у вас есть много специальных аргументов для игры. Проверьте это Статья для всеобъемлющего списка всех аргументов.
Связанная статья : Pandas читы листы, чтобы привязать к своей стене
Метод 3: numpy savetxt ()
Numpy находится в ядре науки Python науки и функциональности машинного обучения. Даже Pandas использует Numpy Armays для реализации критических функций.
Вы можете преобразовать список списков в файл CSV, используя Numpy’s Savetext ()
Функция и пропуская множество массива в качестве аргумента, который возникает из преобразования списка списков.
Этот метод лучше всего наилучшего, если у вас есть численные данные только – иначе он приведет к сложным преобразованиям типа данных, которые не рекомендуются.
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # Method 3 import numpy as np a = np.array(a) np.savetxt('file3.csv', a, delimiter=',')
Выход:
# file3.csv 1.000000000000000000e+00,2.000000000000000000e+00,3.000000000000000000e+00 4.000000000000000000e+00,5.000000000000000000e+00,6.000000000000000000e+00 7.000000000000000000e+00,8.000000000000000000e+00,9.000000000000000000e+00
Выход не выглядит красиво: он хранит значения как поплавки. Но без забот, вы можете переформатировать вывод, используя аргумент формата FMT
из Savetxt ()
Метод ( больше здесь ). Тем не менее, я бы порекомендовал вам придерживаться метода 2 (Pandas), чтобы избежать ненужной сложности в вашем коде.
Связанный:
- [Получить вашу книгу] Coffee Break Numpy И стать наукой данных.
Способ 4: Pure Python без внешних зависимостей
Если вы не хотите импортировать какую-либо библиотеку и до сих пор преобразовать список списков в файл CSV, вы также можете использовать стандартную реализацию Python: это не сложно и эффективно. Однако, если возможно, вы должны полагаться на библиотеки, которые выполняют работу для вас.
Этот метод лучше всего, если вы не будете использовать внешние зависимости.
salary = [['Alice', 'Data Scientist', 122000], ['Bob', 'Engineer', 77000], ['Ann', 'Manager', 119000]] # Method 4 with open('file4.csv','w') as f: for row in salary: for x in row: f.write(str(x) + ',') f.write('\n')
Выход:
# file4.csv Alice,Data Scientist,122000, Bob,Engineer,77000, Ann,Manager,119000,
В коде вы впервые открываете файл объекта F
Отказ Затем вы хотите за каждую строку и каждый элемент в строке и записывать элемент в файл-один за другим. После каждого элемента вы размещаете запятую для создания формата файла CSV. После каждой строки вы размещаете новый символ '\ N'
Отказ
Примечание : Чтобы избавиться от задней запятой, вы можете проверить, если элемент х
Является ли последний элемент в ряд в корпусе цикла и пропустить запятую, если оно есть.
Связанный : Присоединяйтесь к сообществу Finxter и загрузите 8+ чисных листов Python, чтобы обновить свое понимание кода.
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.