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']
添加回答
舉報