在本教程中,我们将学习用Python将数组数据写入逗号分隔值(CSV)文件的各种方法。假设我们有一个数组,其中包含一些处理过的数据、一些算法的输出、一些模型的权值等等,我们想保存它们以备将来使用。
下面是Python将数组转为CSV的三种方法(将数组写入CSV文件):
在Python中使用numpy.savetxt()方法将数组写入CSV文件
numpy.savetxt(fname, array, delimiter=)方法将输入数组保存到文件fname中,delimiter参数是用作分隔符的值,用于分隔数据中的独立值。
要将数组保存到CSV文件中,我们需要传递扩展名为.CSV的fname,并使用逗号作为分隔符。下面的示例代码演示了如何使用numpy.savetxt()将数组写入Python中的CSV文件。
import numpy as np
a = np.array([[1,4,2],[7,9,4],[0,6,2]])
np.savetxt('myfile.csv', a, delimiter=',')
Python中使用Dataframe.to_csv()方法将数组写入CSV文件
Dataframe.to_csv(path, sep,…)方法将Dataframe
保存为path参数指定的文件和路径,sep参数是分隔符或定界符,用于分隔值;sep参数的默认值为“,”。
我们可以将数组写入CSV文件,首先将它转换为Dataframe,然后使用Dataframe.to_csv()方法将CSV文件的路径作为path参数提供。因为sep参数的默认值是",",我们必须为Dataframe.to_csv()方法提供Dataframe和path参数。
下面的示例代码演示了如何使用Dataframe.to_csv()方法将数组写入Python中的CSV文件。
import pandas as pd
df = pd.DataFrame(myarray)
df.to_csv('myfile.csv')
Python中使用writer.writerows()方法将数组写入CSV文件
writer.writerows(rows)以2D数组或列表的形式接受rows参数,并将其写入writer的file对象。writer对象从csv.writer(file)方法返回,该方法接受一个文件对象file作为输入,并返回写入器对象作为输出。
要将数组写入CSV文件,首先必须将CSV文件对象传递给CSV .writer()方法,然后使用writer从CSV.writer()方法返回的writer对象将数组写入CSV文件。
下面的示例代码演示了如何使用writer.writerows()方法将数组写入Python中的CSV文件。
import csv
import numpy
a = numpy.array([[1,4,2],[7,9,4],[0,6,2]])
with open('myfile.csv', 'w', newline='') as file:
mywriter = csv.writer(file, delimiter=',')
mywriter.writerows(a)
要从CSV文件中读取数组,可以使用CSV .reader(file)方法的writer对象从Python中的CSV文件的文件对象file中读取数组。
下面的示例代码演示了如何使用CSV .reader()方法从CSV文件中读取数组。
import csv
with open('myfile.csv', 'r', newline='') as file:
myreader = csv.reader(file, delimiter=',')
for rows in myreader:
print(rows)
输出:
['1', '4', '2']
['7', '9', '4']
['0', '6', '2']