Python 如何将数组列表导出到csv文件?
我使用的是Python3.6.8,我一直在搜索一点白色,但我仍然无法获得我想要的正确的csv导出 我有一个1D数组的列表,我正试图将其导出到CSV文件中。每个数组都有不同的大小,我想按照列顺序导出它们,这意味着每个1D数组将存储在CSV文件中的一列中 为了简化我的代码,它将执行以下操作:Python 如何将数组列表导出到csv文件?,python,numpy,csv,dataframe,arraylist,Python,Numpy,Csv,Dataframe,Arraylist,我使用的是Python3.6.8,我一直在搜索一点白色,但我仍然无法获得我想要的正确的csv导出 我有一个1D数组的列表,我正试图将其导出到CSV文件中。每个数组都有不同的大小,我想按照列顺序导出它们,这意味着每个1D数组将存储在CSV文件中的一列中 为了简化我的代码,它将执行以下操作: import pandas as pd list_of_thing = [] a = np.arange(10) list_of_thing.append(a) b = np.arange(5) list_o
import pandas as pd
list_of_thing = []
a = np.arange(10)
list_of_thing.append(a)
b = np.arange(5)
list_of_thing.append(b)
csvfile = "./data.csv"
my_df = pd.DataFrame(list_of_thing)
my_df.to_csv(csvfile, index=False, header=False)
我还尝试使用np.savetext
,并使用带有open(csvfile,“w”)的作为输出:
,但没有太大成功
我得到的是这个
0123456789
0 1 2 3 4
当我希望它看起来像这样的时候
0
1 1
2 2
3 3
4 4
5.
6.
7.
8.
9
在append的位置,我在想是否有可能通过指定数组应该放在的列来保存数组。尽管我不确定为什么要用这种方式形成df 使用:
my_df=pd.DataFrame(事物列表)
my_df=my_df.T
my_df.to_csv(csvfile,index=False,header=False)
这里有一种不同的方法可以将不同大小的列表输入到列中,我在较小的列表中填充了字符“”:
您可以使用
zip\u longest
来“转置”具有空白填充值的数组列表:
In [120]: from itertools import zip_longest
In [129]: alist = list(zip_longest(np.arange(10), np.arange(5),fillvalue=''))
In [130]: alist
Out[130]:
[(0, 0),
(1, 1),
(2, 2),
(3, 3),
(4, 4),
(5, ''),
(6, ''),
(7, ''),
(8, ''),
(9, '')]
(默认填充值为None
)
然后将其写入一个文件,一个元组一个元组:
In [131]: with open('foobar.txt','w') as f:
...: for row in alist:
...: print('{} {}'.format(*row), file=f)
...:
In [132]: cat foobar.txt
0 0
1 1
2 2
3 3
4 4
5
6
7
8
9
这也可以用savetxt编写:
np.savetxt('foobar.txt',alist, fmt='%s')
对于string元素,我必须使用“%s”格式,而不是数字格式。
savetxt`执行行迭代,因此不会更快
您可能需要使用列宽和分隔符,尤其是在短列表位于左侧时。csv布局将很难阅读。您只需在python中迭代并逐行编写文件,它就可以完美地工作。谢谢。我不知道我们也可以直接在数据帧上使用转换
np.savetxt('foobar.txt',alist, fmt='%s')