Как изменить каждую строку Dataframe? - PullRequest
0 голосов
/ 05 мая 2019

У меня есть фрейм данных, где каждая строка соответствует 1024 пиксельным значениям изображения.Я хочу изменить каждую строку в изображение размером 32x32.Форма моего информационного кадра - (32495, 1024).

Я пытался:

features.iloc[0].values.reshape(32, 32)

Однако это работает только для одной строки.Выполнение этого для всего фрейма данных, например, так:

features.values.reshape(32, 32)

приводит к следующей ошибке:

ValueError: cannot reshape array of size 33274880 into shape (32,32)

Есть идеи о том, как это сделать?

Ответы [ 2 ]

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

Например, вы можете получить массив numpy из вашего DataFrame, но проблема в том, что вы не можете передать DataFrame массивом nanky ранга 3.

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.rand(10, 9))
arr = df.values
arr = np.reshape(arr, (10, 3, 3))

Этот шаг завершится неудачей:

df = pd.DataFrame(arr)

Другой ответ - в конце массив numpy, а не DataFrame.

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

Вам нужно передать количество строк, которые вы должны изменить, как показано ниже:

my_df = pd.DataFrame(np.zeros((32495,1024)))
my_df.shape
>> (32495, 1024)

reshaped_array = my_df.values.reshape(32495, 32, 32)
reshaped_array.shape
>> (32495, 32, 32)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...