我寫了這個,如果我之前像 4 行一樣定義了 product_id_list,我不知道為什么沒有定義它。有什么建議?我的身份認同沒問題,所以我沒有更多的想法,而且我也沒有運氣就四處搜索。
謝謝!!
def make_dataSet_rowWise(reorder_product):
print('unique Product in dataset = ', len(reorder_product.product_id.unique()))
print('unique order_id in dataset = ', len(reorder_product.order_id.unique()))
product_id_list = reorder_product.product_id.unique().tolist()
product_id_list.append("order_id")
product_id_dict = {}
i = 0
for prod_id in product_id_list:
product_id_dict[prod_id] = i
i = i 1
product_id_df = pd.Dataframe(columns = product_id_list)
row_list_all = []
order_id_list = reorder_product.order_id.unique()
i = 1
for id in order_id_list:
#print(i)
i = i 1
np_zeros = np.zeros(shape = [len(product_id_list)-1])
ordered_product_list = reorder_product.loc[reorder_product.order_id == id]["product_id"].tolist()
for order_prod in ordered_product_list:
np_zeros[product_id_dict.get(order_prod)] = 1
row_list = np_zeros.tolist()
row_list.append(id)
row_list_all.append(row_list)
return (row_list_all, product_id_list)
df_row_wise = make_dataSet_rowWise(reorder_product_99Pct)
product_id_df = pd.DataFrame(df_row_wise[0], columns = df_row_wise[1])
product_id_df.head()
我的錯誤是這個:
NameError Traceback (most recent call last)
<ipython-input-343-07bcac1b3b48> in <module>
7 i = 0
8
----> 9 for prod_id in product_id_list:
10 product_id_dict[prod_id] = i
11 i = i 1
NameError: name 'product_id_list' is not defined
uj5u.com熱心網友回復:
正如其他答案已經提到的,您的縮進是錯誤的。我的建議是你使用像 VSCode 這樣的 IDE,還有一個免費的網頁版
3 個 for 回圈也有錯誤的縮進。正確的縮進應該如下

uj5u.com熱心網友回復:
我認為您的縮進可能是錯誤的,for 回圈和 return 陳述句在函式之外(帶有您的縮進),所以我縮進了它,以便它仍然是函式的一部分......
def make_dataSet_rowWise(reorder_product):
print('unique Product in dataset = ', len(reorder_product.product_id.unique()))
print('unique order_id in dataset = ', len(reorder_product.order_id.unique()))
product_id_list = reorder_product.product_id.unique().tolist()
product_id_list.append("order_id")
product_id_dict = {}
i = 0
for prod_id in product_id_list:
product_id_dict[prod_id] = i
i = i 1
product_id_df = pd.Dataframe(columns = product_id_list)
row_list_all = []
order_id_list = reorder_product.order_id.unique()
i = 1
for id in order_id_list:
#print(i)
i = i 1
np_zeros = id.zeros(shape = [len(product_id_list)-1])
ordered_product_list = reorder_product.loc[reorder_product.order_id == id]["product_id"].tolist()
for order_prod in ordered_product_list:
np_zeros[product_id_dict.get(order_prod)] = 1
row_list = np_zeros.tolist()
row_list.append(id)
row_list_all.append(row_list)
return (row_list_all, product_id_list)
uj5u.com熱心網友回復:
我是新來的,但我認為你要么需要定義超出范圍的變數
def make_dataSet_rowWise(reorder_product):
或將 for 回圈縮進到內部
make_dataSet_rowWise
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/338035.html
