将具有不同大小的单个数组的2d numpy字符串数组保存到csv文件中

时间:2019-06-07 07:54:01

标签: python csv numpy

我有一个二维的numpy字符串数组。我正在尝试将其保存到CSV文件。因此,当一维数组的大小不同时,就会出现问题。

例如:

b = [['a','b']    #size of single array = 2
     ['c','d']]   #size of single array = 2

所以,现在,如果我尝试使用以下方式保存它:

np.savetxt("filename.csv", b, fmt ="%s", delimiter=",")

输出的csv文件为:

Col1      Col2     
-------    ----     
a          b        
c          d          

这是我想要的,但是现在让我们说我有一个不同尺寸的一维数组。

例如:

b = [['a','b']    #size of single array = 2
     ['c']]       #size of single array = 1

现在,当我尝试保存它时,输出文件是:

Col1      Col2     
-------   ----     
['a'      'b']           
['c']                   

我希望将其另存为:

Col1       Col2     
-------    ----     
a          b        
c                   

有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

您可以先将其转换为pandas数据框,然后再保存为csv:

import pandas as pd

b = [['a','b'], ['c']]
df = pd.DataFrame(b)
df.fillna('', inplace=True)
df.to_csv(path)

但是您询问了有关numpy数组的问题。如果您有numpy个列表数组,则可以先将其转换为列表列表:

import numpy as np
import pandas as pd

b = np.array([['a','b'], ['c']])
b = list(b)
df = pd.DataFrame(b)
df.fillna('', inplace=True)
df.to_csv(path)

答案 1 :(得分:0)

好的,因为问题是嵌套列表的大小不同(因为np.savetxt适用于大小相同的列表)。我试图使所有列表的大小相同。而且有效。

我借助Question1Question2调整了所有不同尺寸的一维列表的长度

如果还有其他方法,请回答。