Я получаю сообщение об ошибке, и я не уверен, как это исправить.
Кажется, что работает следующее:
def random(row):
return [1,2,3,4]
df = pandas.DataFrame(np.random.randn(5, 4), columns=list('ABCD'))
df.apply(func = random, axis = 1)
и мой вывод:
[1,2,3,4]
[1,2,3,4]
[1,2,3,4]
[1,2,3,4]
Однако, когда я меняю один из столбцов на значение, такое как 1 или Нет:
def random(row):
return [1,2,3,4]
df = pandas.DataFrame(np.random.randn(5, 4), columns=list('ABCD'))
df['E'] = 1
df.apply(func = random, axis = 1)
Я получаю ошибку:
ValueError: Shape of passed values is (5,), indices imply (5, 5)
Я боролся с этим в течение нескольких дней, и ничего не работает. Интересно, что когда я изменяю
def random(row):
return [1,2,3,4]
to
def random(row):
print [1,2,3,4]
все работает нормально.
Этот вопрос является более ясным способом задавать этот вопрос, который, по моему мнению, может быть запутанным.
Моя цель - вычислить список для каждой строки, а затем создать столбец из этого.
EDIT: Я изначально начинаю с фрейма данных, содержащего один столбец. Я добавляю 4 столбца в 4 шага применения разницы, а затем, когда я пытаюсь добавить другой столбец, я получаю эту ошибку.