我了解我可以向数据帧中添加一列,并将其值更新为从函数返回的值,就像这样:
df=pd.DataFrame({'x':[1,2,3,4]})
def square(x):
return x*x
df['x_squared'] = [square(i) for i in df['x']]
然而,我面临一个问题,实际函数返回了两个项目,我希望将这两个项目放入两个不同的新列中。 我在此处编写了伪代码,以更清楚地描述我的问题:
df=pd.DataFrame({'x':[1,2,3,4]})
def squareAndCube(x):
return x*x, x*x*x
#below is a pseudo-code
df['x_squared'], df['x_cubed'] = [squareAndCube(i) for i in df['x']]
上面的代码给了我一个错误信息,说“要解包的值太多”。 那么,我应该如何修复它?
squareAndCube()
函数来简化我的问题。我的真正问题是需要使用地址作为输入并返回纬度和经度。最终我选择了map
和zip
方法。但是知道还有其他几种方法真的很棒!谢谢@Divakar。 - user3768495