Чтобы записать массив в файл CSV в Python, вы можете использовать такие функции, как savetxt и tofile() из библиотеки NumPy или to_scv() из библиотеки Pandas. Мы также можем использовать функции модуля csv, такие как writerow(). savetxt сохраняет 1D или 2D массив в текстовый файл, tofile() записывает данные массива в файл в двоичном формате, Writer() записывает одну строку в файл CSV, а to_csv() записывает DataFrame pandas в файл значений, разделенных запятыми(csv).
В Python существует множество модулей и библиотечных функций, которые можно использовать для записи массива в файл CSV. Давайте рассмотрим их поочередно на нескольких наглядных примерах.
- Метод 1: с помощью pandas.to_csv()
- Метод 2: с помощью csv.writer()
- Способ 3: используя функцию savetxt из библиотеки NumPy
- Способ 4: с помощью функции tofile()
- Случай 1: 2D-массив в CSV
- Случай 2: 3D-массив в файл CSV
Метод 1: с помощью pandas.to_csv()
Здесь мы можем увидеть, как мы можем использовать pandas.csv() для записи массива в CSV-файл в Python.
Pandas — это мощная библиотека манипулирования данными на Python, которая предоставляет простые в использовании структуры данных и инструменты анализа данных. Одной из таких структур данных является DataFrame, которую можно легко экспортировать в файл CSV.
В этом примере Python мы генерируем последовательность чисел, преобразуем ее в матрицу, преобразуем эту матрицу, а затем сохраняем этот DataFrame как файл CSV.
Пример. Давайте рассмотрим пример, который сначала создаст 2D-массив, а затем запишет его в CSV-файл на Python.
import pandas as pd import numpy as np array = np.arange(1,21).reshape(4,5) dataframe = pd.DataFrame(array) dataframe.to_csv(r"C:\Users\Administrator.SHAREPOINTSKY\Desktop\Work\data1.csv")
Вывод: мы видим, что массив сохраняется в файле CSV в качестве вывода. Вы можете обратиться к скриншоту ниже для вывода.
Метод 2: с помощью csv.writer()
Модуль csv в Python предоставляет функции чтения и записи файлов CSV. Функция writerow() в модуле csv будет использоваться для записи массива в файл CSV.
Сценарий: рассмотрим ситуацию, когда нам нужно сохранить это в CSV-файл через Python. Файл уже сохранен как массив Python. Итак, чтобы записать массив в CSV-файл Python:
import csv import numpy as np array = np.array([['welcome'], ['to'], ['pythonguides !']]) file = open(r'C:\Users\Administrator.SHAREPOINTSKY\Desktop\Work\site.csv', 'w+', newline ='') with file: write = csv.writer(file) write.writerows(array)
Вывод: в этом примере мы сначала создаем 2D-массив с помощью np.array(). Затем мы открываем файл и пишем в него. Строки массива NumPy записываются в файл CSV каждая в виде отдельной строки.
Аргумент «newline=» используется для того, чтобы средство записи CSV правильно обрабатывало символы новой строки на разных платформах.
Мы создаем контекстный менеджер, который гарантирует правильное закрытие файла после завершения его работы, даже если по пути возникает исключение. Внутри контекстного менеджера вы создаете объект csv.writer, который будет использоваться для записи данных в файл с помощью writerows().
Результат можно увидеть в формате строки на снимке экрана ниже.
Таким образом, мы можем использовать функцию writerow() из модуля csv в массиве записи Python в csv.
Способ 3: используя функцию savetxt из библиотеки NumPy
NumPy — это библиотека для числовых вычислений на Python. Он предоставляет функцию savetxt, которую можно использовать для сохранения массива в текстовый файл, включая CSV.
Пример 1. В этом примере у нас есть массив, который нам нужно сохранить в новый файл CSV с помощью Python.
import numpy as np array = np.array([2 ,4, 6, 8, 10]) newfile = np.savetxt("header.csv", np.dstack((np.arange(1, array.size+1),array))[0],"%d,%d",header="Id,Values") print(newfile)
Вывод: одномерный массив целых чисел создается с использованием метода массива из импортированной библиотеки numpy.
Затем генерируется еще один массив в диапазоне от 1 до размера ранее созданного массива. Эти два массива складываются по третьему измерению с помощью метода np.dstack(), преобразуя их в двумерный массив. Выбирается первая строка этого двумерного массива.
Выбранные данные затем записываются в файл CSV в формате целых чисел, разделенных запятыми и включающих заголовок. Метод np.savext(), используемый для записи в файл, не возвращает никакого значения, в результате чего на консоль при попытке распечатать выходные данные метода выводится None.
Пример 2. Здесь мы можем записать массив в CSV-файл, используя numpy.savext в Python.
- В этом примере я импортировал модуль под названием numpy, создал переменную как массив и присвоил array = numpy.array([[2, 4, 6],[8, 10, 12],[14, 16, 18]] ).
- Я использовал numpy.savetxt(«even.csv», a, delimiter = «»,), savetxt — это функция numpy, используемая для сохранения массива numpy в файл.
- Разделитель — это последовательность символов, используемая для указания границы между отдельными.
Исходный код:
import numpy array = numpy.array([[2, 4, 6], [8, 10, 12], [14, 16, 18]]) numpy.savetxt("even.csv", array, delimiter = ",")
Вы можете обратиться к снимку экрана ниже, чтобы увидеть, как Python записывает массив в CSV-файл:
Способ 4: с помощью функции tofile()
Функция tofile в NumPy обычно используется для записи данных массива в двоичный файл. Но мы можем использовать его для записи массива Python в файл CSV.
Пример: рассмотрим ситуацию, когда мне сказали записать данные, хранящиеся в Python в виде массива, в файл CSV для дальнейшей процедуры.
import numpy as np array = np.arange(1,20) print(array) array.tofile('hello.csv', sep = ',')
Выход:
- В этом примере я импортировал модуль с именем numpy как np, создал переменную с именем array и присвоил array = np.arange(1,20).
- np.arange используется для создания массива с диапазоном(1,20) в качестве заданного диапазона.
- array.tofile используется для записи всех элементов в файловый объект, «hello.csv» — это имя файла, sep = «,» — разделитель.
Число между заданным диапазоном показано на снимке экрана ниже в качестве вывода.
Вот способы записи 2D- и 3D-массивов в файлы CSV через Python.
Случай 1: 2D-массив в CSV
Здесь мы можем увидеть, как записать 2Darray в CSV-файл на Python:
- В этом примере я импортировал модуль csv, а переменная создается как array_2D как array_2D = [[3,6,9,12],[4,8,12,16]].
- Чтобы открыть файл, я использовал open(«array.csv», «w+») в качестве my_csv: array.csv — это имя файла, «w+» — это режим, используемый для записи файла.
- Другая переменная new array называется newarray = csv.writer(my_csv,delimiter=’,’). Модуль записи CSV используется для вставки данных в файл CSV.
- Разделитель — это последовательность символов, используемая для указания границы между отдельными.
- newarray.writerows(array_2D) используется для записи каждой строки в файле csv.
Исходный код:
import csv array_2D = [[3,6,9,12],[4,8,12,16]] with open("array.csv","w+") as my_csv: newarray = csv.writer(my_csv,delimiter=',') newarray.writerows(array_2D)
На снимке экрана ниже вы можете видеть, что 2D-массив хранится в файле csv. Вы можете обратиться к скриншоту ниже для вывода.
Случай 2: 3D-массив в файл CSV
Здесь мы можем увидеть, как Python записывает массив в файл CSV разного размера, например 3D:
- В этом примере я импортировал модуль csv, и переменная создается как array_3D как array_2D = [[3,6,9,12],[4,8,12,16],[5,10,15, 20]].
- Чтобы открыть файл, который я использовал с помощью open(«array.csv», «w+») как my_csv: array.csv — это имя файла, «w+» — это режим, используемый для записи файла.
- Другая переменная new array называется newarray = csv.writer(my_csv,delimiter=’,’). Модуль записи CSV используется для вставки данных в файл CSV.
- Разделитель — это последовательность символов, используемая для указания границы между отдельными.
- newarray.writerows(array_3D) используется для записи каждой строки в файле CSV.
Исходный код:
import csv array_3D = [[3,6,9,12],[4,8,12,16],[5,10,15,20]] with open("array_3D.csv","w+") as my_csv: newarray = csv.writer(my_csv,delimiter=',') newarray.writerows(array_3D)
На снимке экрана ниже вы можете увидеть результат, поскольку 3D-массив хранится в файле csv.