2 回答
TA贡献1863条经验 获得超2个赞
我可以从后面看到您的第三行需要缩进。此外,如果您要同时遍历两个对象,则需要正常使用 zip() 函数。我通常不使用 .iterrows 来遍历表,我喜欢执行以下操作;
这将带您浏览所有列和每个列中的所有行,您还可以遍历索引或范围(len(df)),这将为您提供一个可以与 df.iloc[rownum,colnum] 一起使用的 num
for i in df:
print(i)
for j in df[i]:
print(i,j)
如果您变得缓慢和详细,还列出生成器可能会有所帮助。
它们遵循下面的一般语法并且可以嵌套;
obj = [i if i > 0 else 0 for i in iterable]
编辑:我也认为您的字符串被转换为 int 存在一个主要问题。您无法将整个字符串转换为 int,这就是您正在做的事情
TA贡献1785条经验 获得超4个赞
解决方案实际上非常简单。遍历行,将响应存储为列表,然后将列表作为列添加到 Dataframe。类型不一样,所以我需要更改类型,然后我可以根据需要在新列中执行数学运算。当我重构所有内容时,也许是一种更清洁的方法,但现在启动并运行!谢谢大家。
allocations= []
for i, j in sums.iterrows():
answer = input(f"How much of {i} were we allocated?")
allocations.append(answer)
sums['allocation'] = allocations
sums = sums.astype({'orderqty':float,'allocation':float})
sums['order_percent'] = sums['orderqty']/sums['allocation']
添加回答
举报