我遇到一个错误,但不确定如何修复它。
以下内容似乎有效:
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]
一切似乎正常工作。
这个问题是一个更清晰的方式来问这个问题,我感觉可能有点令人困惑。
我的目标是为每一行计算一个列表,然后根据那个列表创建一列。
编辑:我最初使用只有一列的数据框开始。我在四个不同的apply步骤中添加了4列,然后当我尝试添加另一列时,我得到了这个错误。