Несоответствие формы при назначении массива в DataFrame - PullRequest
0 голосов
/ 31 августа 2018

У меня есть пустой фрейм данных с 3 столбцами:

df = pd.DataFrame(columns=['colA', 'colB', 'colC'])

и у меня есть массив Nx2:

data = np.ones((100,2))

Я хочу поместить свой массив данных в два столбца кадра данных (colB и colC), поэтому я попробовал что-то вроде:

df[["colB","colC"]] = data

Но я получаю ошибку несоответствия формы:

ValueError: shape mismatch: value array of shape (100,2) could not be broadcast to indexing result of shape (2,0)

Я могу сделать это столбец за столбцом:

df["colB"] = data[:,0]
df["colC"] = data[:,1]

Есть ли прямой способ присвоения массива кадру данных?

Спасибо

1 Ответ

0 голосов
/ 31 августа 2018

Я думаю, возможно использовать конструктор DataFrame перед присваиванием:

df = pd.DataFrame(columns=['colA', 'colB', 'colC'])
df[["colB","colC"]] = pd.DataFrame(data)

Или, если хотите, добавить пустые столбцы:

data = np.ones((100,2))

df1 = pd.DataFrame(data, columns=["colB","colC"]).reindex(columns=['colA', 'colB', 'colC'])

print (df1.head())
   colA  colB  colC
0   NaN   1.0   1.0
1   NaN   1.0   1.0
2   NaN   1.0   1.0
3   NaN   1.0   1.0
4   NaN   1.0   1.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...