語境:
我從一個包含 20 多個汽車模型的汽車資料框開始。然后我創建了一個陣列,其中包含每個模型的出現次數。現在,我試圖將出現次數少于 500 次的模型與出現次數 => 500 次的模型分成兩個不同的二維陣列。
我的代碼:
unique_models, count_of_models = np.unique(my_data_frame["model"],
return_counts=True)
print(unique_models, count_of_models)
[' A1' ' A2' ' A3' ' A4' ' A5' ' A6' ' A7' ' A8' ' Q2' ' Q3' ' Q5' ' Q7' ' Q8' ' R8'
' RS3' ' RS4' ' RS5' ' RS6' ' RS7' ' S3' ' S4' ' S5' ' S8' ' SQ5' ' SQ7' ' TT']
[1347 1 1929 1381 882 748 122 118 822 1417 877 397 69 28 33 31
29 39 1 18 12 3 4 16 8 336]
representative_models = np.empty((0, 2), int)
other_models = np.empty((0, 2), int)
for models in unique_models:
for counts in count_of_models:
if counts < 500:
other_models = np.append(other_models, np.array([[models, counts]]), axis=0)
else:
representative_models = np.append(other_models, np.array([[models, counts]]), axis=0)
unique_models = 1
一切正常,除了一件小事。不知何故, unique_models = 1 增量將不起作用,第二個 for 回圈將繼續使用相同的 unique_model 但增加其計數。
我想要的是回到第一個回圈,增加模型,然后轉到第二個回圈并增加計數。
希望這足夠清楚,謝謝:)
uj5u.com熱心網友回復:
在這里,您正在遍歷串列或陣列 unique_models
for models in unique_models:
unique_models = 1完全沒有意義,并且應該在您嘗試將一個添加int到串列時拋出錯誤。
相反,您可以break通過使用break代替來進入下一個可以脫離內部回圈的模型unique_models = 1,但是這將在第一次迭代后脫離回圈。您想要做的是回圈遍歷 BOTH count_of_models,unique_models同時,您可以使用zip它。
for models, counts in zip(unique_models, count_of_models):
if counts < 500:
other_models = np.append(other_models, np.array([[models, counts]]), axis=0)
else:
representative_models = np.append(other_models, np.array([[models, counts]]), axis=0)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/322028.html
上一篇:檔案夾中的inspect.py檔案使匯入熊貓不再起作用
下一篇:合并兩個資料幀(都具有多索引)
