np.concatenate error ... ValueError: все входные массивы должны иметь одинаковое количество измерений - PullRequest
0 голосов
/ 04 мая 2019

Мои кодовые слова в порядке, пока я не попытаюсь загрузить заголовки в кадр данных. Кажется, это проблема с np.concatenate.

Я попытался транспонировать массив, чтобы увидеть, не в том ли он направлении.

print("\n")
print("Prediction")

Y = vectorizer.transform(df['plot_keywords'].astype('U'))

prediction = model.predict(Y)

df_tmp = np.concatenate([df, pd.DataFrame(np.transpose(prediction.astype(np.int32)), columns=['cluster_plot_keywords'])], axis=1)


#!!!this is where the error is, caused by the np.concatenate!!!
df = pd.DataFrame(df_tmp, columns=[np.concatenate([df.columns.values,'cluster_plot_keywords'])])

Ожидаемые результаты: я могу написать df и распечатать фрейм данных.

Я получаю следующую ошибку при создании заголовков для фрейма данных:

ValueError    Traceback (most recent call last)
<ipython-input-12-42a155bf519f> in <module>
      7 
      8 #!!!this is where the error is, caused by the np.concatenate!!!
----> 9 df = pd.DataFrame(df_tmp, columns=[np.concatenate([df.columns.values,'cluster_plot_keywords'])])

ValueError: all the input arrays must have same number of dimensions

Если я печатаю df_tmp, он выводит массив правильно, но не как фрейм данных, поэтому я пытаюсь загрузить столбцы:

array([['Color', 'James Cameron', 723.0, ..., 1.78, 33000, 0],
       ['Color', 'Gore Verbinski', 302.0, ..., 2.35, 0, 0],
       ['Color', 'Sam Mendes', 602.0, ..., 2.35, 85000, 0],
       ...,
       ['Color', 'Benjamin Roberds', 13.0, ..., nan, 16, 2],
       ['Color', 'Daniel Hsia', 14.0, ..., 2.35, 660, 2],
       ['Color', 'Jon Gunn', 43.0, ..., 1.85, 456, 1]], dtype=object)

1 Ответ

0 голосов
/ 04 мая 2019

В

np.concatenate([df.columns.values,'cluster_plot_keywords'])

вы пытаетесь объединить массивоподобный объект (df.columns.values) со строкой 'cluster_plot_keywords' (которая «интерпретируется» как 0-мерный массив). Это похоже на опечатку; может быть, вы имели в виду что-то вроде

np.concatenate([df.columns.values, prediction['cluster_plot_keywords']])

или

np.concatenate([df.columns.values, df['cluster_plot_keywords']])

Но я не могу сказать наверняка, не зная больше о том, что именно 'cluster_plot_keywords' (наряду с df, prediction и их соответствующим содержимым).

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