import csv
person = [['SN', 'Person', 'DOB'],
['1', 'John', '18/1/1997'],
['2', 'Marie','19/2/1998'],
['3', 'Simon','20/3/1999'],
['4', 'Erik', '21/4/2000'],
['5', 'Ana', '22/5/2001']]
csv.register_dialect('myDialect',
delimiter = '|',
quoting=csv.QUOTE_NONE,
skipinitialspace=True)
with open('dob.csv', 'w') as f:
writer = csv.writer(f, dialect='myDialect')
for row in person:
writer.writerow(row)
f.close()
分隔符是用于分隔字段的字符串 . 默认值为逗号(,) .
31
你也可以使用纯python而不使用任何模块 .
# format as a block of csv text to do whatever you want
csv_rows = ["{},{}".format(i, j) for i, j in array]
csv_text = "\n".join(csv_rows)
# write it to a file
with open('file.csv', 'w') as f:
f.write(csv_text)
import pandas as pd
df = pd.DataFrame(np_array)
df.to_csv("file_path.csv")
2
将记录数组写为带有 Headers 的CSV文件需要更多的工作 .
此示例读取带有第一行 Headers 的CSV文件,然后写入相同的文件 .
import numpy as np
# Write an example CSV file with headers on first line
with open('example.csv', 'w') as fp:
fp.write('''\
col1,col2,col3
1,100.1,string1
2,222.2,second string
''')
# Read it as a Numpy record array
ar = np.recfromcsv('example.csv')
print(repr(ar))
# rec.array([(1, 100.1, 'string1'), (2, 222.2, 'second string')],
# dtype=[('col1', '<i4'), ('col2', '<f8'), ('col3', 'S13')])
# Write as a CSV file with headers on first line
with open('out.csv', 'w') as fp:
fp.write(','.join(ar.dtype.names) + '\n')
np.savetxt(fp, ar, '%s', ',')
9 回答
numpy.savetxt将数组保存到文本文件中 .
if you want to write in column:
这里'a'是numpy数组的名称,'file'是要写入文件的变量 .
If you want to write in row:
在Python中,我们使用csv.writer()模块将数据写入csv文件 . 该模块类似于csv.reader()模块 .
分隔符是用于分隔字段的字符串 . 默认值为逗号(,) .
你也可以使用纯python而不使用任何模块 .
tofile是一个方便的功能:
手册页有一些有用的注释:
注意 . 此函数不会生成多行csv文件,它会将所有内容保存到一行 .
如果要将numpy数组(例如
your_array = np.array([[1,2],[3,4]])
)保存到一个单元格,可以先使用your_array.tolist()
进行转换 .然后以正常方式将其保存到一个单元格,使用
delimiter=';'
并且csv文件中的单元格将如下所示[[1, 2], [2, 4]]
然后你可以像这样恢复你的数组:
your_array = np.array(ast.literal_eval(cell_string))
如前所述,将阵列转储为CSV文件的最佳方法是使用
.savetxt(...)
方法 . 但是,我们应该知道某些事情要做得恰当 .例如,如果你有一个带有
dtype = np.int32
的numpy数组并希望使用
savetxt
保存它将以浮点指数格式存储数据
您必须使用名为
fmt
as的参数更改格式以原始格式存储数据
以压缩gz格式保存数据
此外,
savetxt
可用于以.gz
压缩格式存储数据,这在通过网络传输数据时可能很有用 .我们只需要将文件的扩展名更改为
.gz
,numpy将自动处理所有内容希望能帮助到你
大熊猫简单快捷
将记录数组写为带有 Headers 的CSV文件需要更多的工作 .
此示例读取带有第一行 Headers 的CSV文件,然后写入相同的文件 .
请注意,此示例不考虑带逗号的字符串 . 要考虑非数字数据的引号,请使用csv包: