我收到一个错误,我不知道如何修复它。
以下似乎有效:
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 或 None 之类的值时:
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]
至
def random(row):
print [1,2,3,4]
一切似乎都正常工作。
这个问题是提出这个问题的更清晰的方式,我觉得这可能令人困惑。
我的目标是为每一行计算一个列表,然后从中创建一个列。
编辑:我最初从一个具有一列的数据框开始。我在 4 个不同的应用步骤中添加了 4 列,然后当我尝试添加另一列时出现此错误。