Надувание 1D-массива в 2D-массив в numpy

Скажем, у меня есть 1D-массив:

import numpy as np my_array = np.arange(0,10) my_array.shape (10, ) 

В Pandas я хотел бы создать DataFrame только с одной строкой и 10 столбцами, используя этот массив. Например:

 import pandas as pd import random, string # Random list of characters to be used as columns cols = [random.choice(string.ascii_uppercase) for x in range(10)] 

Но когда я пытаюсь:

 pd.DataFrame(my_array, columns = cols) 

Я получил:

 ValueError: Shape of passed values is (1,10), indices imply (10,10) 

Я предполагаю, что это потому, что Pandas ожидает 2D-массив, и у меня есть (плоский) 1D-массив. Есть ли способ раздуть мой 1D-массив в 2D-массив или Panda использовать 1D-массив в создании DataFrame?

Примечание. Я использую последнюю стабильную версию Pandas (0.11.0)

4 Solutions collect form web for “Надувание 1D-массива в 2D-массив в numpy”

Ваш массив значений имеет длину 9, (значения от 1 до 9), а ваш список cols имеет длину 10.

Я не понимаю ваше сообщение об ошибке, основанное на вашем коде, я получаю:

 ValueError: Shape of passed values is (1, 9), indices imply (10, 9) 

Это имеет смысл.

Пытаться:

 my_array = np.arange(10).reshape(1,10) cols = [random.choice(string.ascii_uppercase) for x in range(10)] pd.DataFrame(my_array, columns=cols) 

Результат:

  FHLNMXBRSN 0 0 1 2 3 4 5 6 7 8 9 

Либо они должны это сделать:

 my_array2 = my_array[None] # same as myarray2 = my_array[numpy.newaxis] 

или

 my_array2 = my_array.reshape((1,10)) 

Однострочный многоканальный DataFrame необычен. Более естественным, идиоматическим выбором будет серия, индексированная тем, что вы называете cols:

 pd.Series(my_array, index=cols) 

Но, чтобы ответить на ваш вопрос, конструктор DataFrame предполагает, что my_array является столбцом из 10 точек данных. Попробуйте DataFrame(my_array.reshape((1, 10)), columns=cols) . Это подходит для меня.

Используя один из альтернативных конструкторов DataFrame, можно создать DataFrame без необходимости изменения my_array.

 import numpy as np import pandas as pd import random, string my_array = np.arange(0,10) cols = [random.choice(string.ascii_uppercase) for x in range(10)] pd.DataFrame.from_records([my_array], columns=cols) Out[22]: HHPQCAGNTW 0 0 1 2 3 4 5 6 7 8 9 
  • Чтение пар ключ-значение в Pandas
  • Создание минимальной серии элементов из двух других рядов в Pandon Pandas
  • return pandas DF column с количеством дней, прошедших между индексом и сегодняшней датой
  • Панды читают в таблице без заголовков
  • Линейная регрессия и градиентный сон в Scikit learn / Pandas?
  • многомесячное среднее значение с pandas 'Series
  • Выбор строк в мультииндексированном фрейме
  • линейная интерполяция между двумя точками данных
  • Индексирование фрейма данных pandas целым числом
  • Pandas DataFrames с сравнением равенства NaNs
  • Как получить ближайшую единственную строку после определенного индекса datetime с помощью Python Pandas
  •  
    Interesting Posts for Van-Lav

    python virtualenv: почему я могу импортировать старые модули в clean / new virtualenv

    Получение содержимого из html и запись загруженного содержимого в определенном формате в CSV

    Эквивалент sqlall в Django 1.9?

    Проблема с цветовой палитрой Python 3d

    Ошибка импорта модуля Pyinstaller QtCore

    Как получить доступ к id / widget из другого класса из файла kivy (.kv)?

    Как сделать try-except-KeyError короче в python?

    Как проверить, является ли строка допустимым идентификатором python? включая проверку ключевых слов?

    Python __init__ и сам, что они делают?

    Может ли Python быть хорошей альтернативой для веб-приложения, которое в противном случае было бы выполнено в Java EE?

    Ошибка потока в Python & PyQt

    кластерные точки после кластеризации KMeans (изучение scikit)

    Контекстные локаторы – как они делают глобальные переменные локального контекста?

    `apply_async` молчание" ошибки общей очереди "

    Как выполнить итерацию по всем строкам файлов, переданных в командной строке?

    Python - лучший язык программирования в мире.