У меня проблемы с заполнением панд DataFrame
. Я следую инструкциям, найденным здесь , чтобы получить MultiIndex
DataFrame
. Пример работает нормально, за исключением того, что я хочу иметь массив вместо одного значения.
activity = 'Open_Truck'
id = 1
index = pd.MultiIndex.from_tuples([(activity, id)], names=['activity', 'id'])
v = pd.Series(np.random.randn(1, 5), index=index)
Исключение: данные должны быть одномерными
Если я заменим randn(1, 5)
на randn(1)
, он будет работать нормально. Для randn(1, 1)
я должен использовать randn(1, 1).flatten('F')
, но также работает.
При попытке:
v = pd.Series(np.random.randn(1, 5).flatten('F'), index=index)
ValueError: Неверное количество пройденных элементов 5, размещение подразумевает 1
Мое намерение состоит в том, чтобы добавить 1 вектор признаков (они np.array
, конечно, в сценарии реального случая, а не np.random.randn
) для каждого activity
и id
в каждой строке.
Итак, как мне удается добавить массив в MultiIndex
DataFrame
?
Edit:
Поскольку я новичок в пандах, я смешал Series
с DataFrame
. Я могу добиться вышеуказанного, используя DataFrame
, который по умолчанию является двумерным:
arrays = [np.array(['Open_Truck']*2),
np.array(['1', '2'])]
df = pd.DataFrame(np.random.randn(2, 4), index=arrays)
df
0 1 2 3
Open 1 -0.210923 0.184874 -0.060210 0.301924
2 0.773249 0.175522 -0.408625 -0.331581