Инициализация и заполнение большого массива в NumPy, где большинство значений - NaN - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь взять кучу данных и поместить их в Pandas DataFrame.Я думал, что было бы более эффективно сначала загрузить его в массив NumPy.Для этого мне нужно около 2000 столбцов и 150000 строк, где столбцы имеют смешанный тип (некоторые float, а некоторые string).Я начал с инициализации массива NumPy следующим образом:

num_rows = 150000
types = [('Col1', 'float32'), ('Col2', 'U50'),..., ('Col2000', 'float32')]
arr = np.full(num_rows, np.nan, dtype=types)

Но на это уходит много времени.Кроме того, большинство значений в этом массиве будет nan.Обычно только пара столбцов в каждой строке будет иметь значение в них.Конечная цель - превратить это в pandas.DataFrame, выполнив что-то вроде

df = pd.DataFrame(arr, index=arr['Col1'], columns=[i[0] for i in types])

Есть ли более эффективный способ создать DataFrame, где большая часть данных будет nan подобной этой?

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