2d массив до двух столбцов в кадре данных - PullRequest
0 голосов
/ 28 ноября 2018

Я получил переменную 'v', которая представляет собой двумерный массив:

in = v
out = 
array([[ 217.1,  252.5],
   [  73. ,   53. ],
   [  83. ,  827. ],
   ...,
   [ 129. , 1214. ],
   [ 118.6,  908.2],
   [  90. ,   99.5]])

У меня есть фрейм данных с несколькими столбцами, и теперь я хочу добавить этот массив в него в 2 отдельных столбца.Итак:

x        y
271.1   252.5

и так далее.

Как я могу это сделать?

Я пытался:

df["Q_pred"],df["r_pred"] = v

, но это выдает ошибку:

ValueError: too many values to unpack (expected 2)

Честно говоря, нетзнаю, как это сделать.

Ответы [ 3 ]

0 голосов
/ 28 ноября 2018

Легко добавить несколько столбцов одновременно в существующий DataFrame.Просто назначьте, используя список ваших новых столбцов, и преобразуйте ваш массив numpy в DataFrame:

df[['Q_pred', 'r_pred']] = pd.DataFrame(v)

   Q_pred  r_pred
0   217.1   252.5
1    73.0    53.0
2    83.0   827.0
3   129.0  1214.0
4   118.6   908.2
5    90.0    99.5
0 голосов
/ 28 ноября 2018

Другой способ - индексировать столбец следующим образом:

df["Q_pred"],df["r_pred"] = v[:,0], v[:,1]
0 голосов
/ 28 ноября 2018

Это правильная идея, но вам понадобится преобразованная матрица:

import pandas as pd
import numpy as np

v = np.array([[ 217.1,  252.5],
   [  73. ,   53. ],
   [  83. ,  827. ],
   [ 129. , 1214. ],
   [ 118.6,  908.2],
   [  90. ,   99.5]])

df = pd.DataFrame()

df["Q_pred"], df["r_pred"] = v.T

   Q_pred  r_pred
0   217.1   252.5
1    73.0    53.0
2    83.0   827.0
3   129.0  1214.0
4   118.6   908.2
5    90.0    99.5

Это работает и с уже заполненным фреймом данных:

df["asdf"],df["qwetz"] = v.T

   Q_pred  r_pred   asdf   qwetz
0   217.1   252.5  217.1   252.5
1    73.0    53.0   73.0    53.0
2    83.0   827.0   83.0   827.0
3   129.0  1214.0  129.0  1214.0
4   118.6   908.2  118.6   908.2
5    90.0    99.5   90.0    99.5

или корочебез преобразования и в одну строку:

df = pd.DataFrame(v, columns=['Q_pred', 'r_pred'])

   Q_pred  r_pred
0   217.1   252.5
1    73.0    53.0
2    83.0   827.0
3   129.0  1214.0
4   118.6   908.2
5    90.0    99.5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...