Сохранение двумерного массива строк с одним массивом разного размера в файл CSV - PullRequest
1 голос
/ 07 июня 2019

У меня есть двумерный массив строк. Я пытаюсь сохранить его в файл 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 ]

1 голос
/ 07 июня 2019

Вы можете сначала преобразовать его в pandas dataframe, а затем сохранить в csv:

import pandas as pd

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

Но вы спросили о массиве 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)
0 голосов
/ 07 июня 2019

Хорошо, поскольку проблема связана с разным размером вложенных списков (так как np.savetxt работает для списка такого же размера). Я попытался сделать размер всех списков одинаковым. И это сработало.

Я отрегулировал длину всех списков 1D разных размеров с помощью Вопрос1 и Вопрос2

Если есть другой подход, пожалуйста, ответьте. Было бы очень полезно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...