Создайте серию панд из массива фигур (m, n) - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь заставить Series конструктор понять, что я хочу, чтобы каждая ячейка содержала список.Он работает над формой (m,), но не над формой (m, n)

import pandas as pd
import numpy as np

print(pd.__version__)
# 0.24.1

index = ['a', 'b', 'c']

### 1 - shape (m,) is OK ###

data1 = np.array([[1, 2, 3], [4, 5], [6, 7, 8, 9]])
print(data1.shape)
# (3,)

series1 = pd.Series(index=index, data=data1)
print(series1)
# a       [1, 2, 3]
# b          [4, 5]
# c    [6, 7, 8, 9]
# dtype: object

### 2 - shape (m,n) is NOT OK ###

data2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(data2.shape)
# (3, 3)

series2 = pd.Series(index=index, data=data2)

# Traceback (most recent call last):
#   File "test.py", line 25, in <module>
#     series2 = pd.Series(index=index, data=data2)
#   File "/home/dev/virtualenv/py-cnn/lib64/python3.6/site-packages/pandas/core/series.py", line 262, in __init__
#     raise_cast_failure=True)
#   File "/home/dev/virtualenv/py-cnn/lib64/python3.6/site-packages/pandas/core/internals/construction.py", line 658, in sanitize_array
#     raise Exception('Data must be 1-dimensional')
# Exception: Data must be 1-dimensional

Любая идея преобразовать numpy форму массива в (m,) или сделать понятным Pandas Serie конструктор, что мне нужно?

1 Ответ

1 голос
/ 23 мая 2019

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

series2 = pd.Series(index=index, data=data2.tolist())

print(series2)
a    [1, 2, 3]
b    [4, 5, 6]
c    [7, 8, 9]
dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...