Как создать фрейм данных из массива numpy - PullRequest
0 голосов
/ 06 мая 2018

У меня есть следующий массив numpy:

numpy_x.shape

(9982, 26)

numpy_x имеет 9982 записей / наблюдений и 26 столбцов индекса. Это правда правда?

numpy_x[:]
array([[0.00000000e+00, 9.60000000e-01, 1.00000000e+00, ...,
        1.20000000e+00, 6.90000000e-01, 1.17000000e+00],
       [1.00000000e+00, 9.60000000e-01, 1.00000000e+00, ...,
        1.20000000e+00, 7.00000000e-01, 1.17000000e+00],
       [2.00000000e+00, 9.60000000e-01, 1.00000000e+00, ...,
        1.20000000e+00, 7.00000000e-01, 1.17000000e+00],
       ...,
       [9.97900000e+03, 6.10920994e-01, 7.58135980e-01, ...,
        1.08704204e+00, 7.88187535e-01, 1.23021669e+00],
       [9.98000000e+03, 6.10920994e-01, 7.58135980e-01, ...,
        1.08704204e+00, 7.88187535e-01, 1.23021669e+00],
       [9.98100000e+03, 6.10920994e-01, 7.58135980e-01, ...,
        1.08704204e+00, 7.88187535e-01, 1.23021669e+00]])

Я хочу сгенерировать фрейм данных с данными, индексом и столбцами numpy_x (индекс и столбцы на самом деле одинаковы?), Затем я продолжаю выполнять следующее:

import pandas as pd
pd.DataFrame(data=numpy_x[:], # I want pass the entire numpy array content
            index=numpy_x[1:26],
            columns=numpy_x[9982:26])

Но я получаю следующую ошибку:

/.conda/envs/x/lib/python3.6/site-packages/pandas/core/internals.py in construction_error(tot_items, block_shape, axes, e)
   4606         raise ValueError("Empty data passed with indices specified.")
   4607     raise ValueError("Shape of passed values is {0}, indices imply {1}".format(
-> 4608         passed, implied))
   4609 
   4610 

ValueError: Shape of passed values is (26, 9982), indices imply (0, 25)

Как понять, какие параметры передают атрибуты index и columns?

1 Ответ

0 голосов
/ 06 мая 2018

Использование -

numpy_x=np.random.random((100,10))
df=pd.DataFrame(numpy_x)

выход

          0         1         2         3         4         5         6  \
0  0.204839  0.837503  0.696896  0.235414  0.594766  0.521302  0.841167
1  0.041490  0.679537  0.657314  0.656672  0.524983  0.936918  0.482802
2  0.318928  0.423196  0.218037  0.515017  0.107851  0.564404  0.218297
3  0.644913  0.433771  0.297033  0.011239  0.346021  0.353749  0.587631
4  0.127949  0.517230  0.969399  0.743442  0.268566  0.415327  0.567572

          7         8         9
0  0.882685  0.211414  0.659820
1  0.752496  0.047198  0.775250
2  0.521580  0.655942  0.178753
3  0.123761  0.483601  0.157191
4  0.849218  0.098588  0.754402

Я хочу создать фрейм данных с данными, индексом и столбцами numpy_x (индекс и столбцы на самом деле одинаковы?)

Да и нет. Index - это просто информация о маркировке оси в pandas. В зависимости от оси индекс может означать индексирование строк или столбцов.

Информация о маркировке осей в объектах панд служит многим целям:

  • Идентифицирует данные (то есть предоставляет метаданные) с использованием известных индикаторов, важно для анализа, визуализации и интерактивной консоли дисплей
  • Включает автоматическое и явное выравнивание данных
  • Позволяет интуитивно получать и устанавливать подмножества набора данных

Это также может быть простой одно целочисленный индекс или также Multi-Index

Index и Columns Параметр

Параметр columns - это просто метки столбцов, которые вы хотите предоставить своему набору данных, в этом случае вы хотите передать 26 имен для 26 столбцов в вашем массиве numpy. По умолчанию будет установлено значение np.arange(n), если не указаны метки столбцов

Параметр index - это просто индекс, который нужно использовать для результирующего кадра. По умолчанию будет np.arange(n), если не будет индексированной информационной части входных данных и индекс не будет предоставлен (как в моем примере)

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