我訓練了 3756 行并測驗了 500 行,加入后我有 798974 行。
加入代碼:
test.join(train.set_index('link_1')['claps_link_1_mean'], on='link_1', how='left')
使用洗掉重復是可行的,但需要大量時間和記憶體。
uj5u.com熱心網友回復:
原因是and中列link_1的重復值,因此對于每個重復值,獲取以下之間的所有組合:testtrain
train = pd.DataFrame({"link_1": [0, 0, 0, 0, 1, 1, 1, 1],
'claps_link_1_mean': range(8)})
test = pd.DataFrame({"link_1": [0, 1, 1, 1]})
df = test.join(train.set_index('link_1')['claps_link_1_mean'], on='link_1', how='left')
print (df)
link_1 claps_link_1_mean
0 0 0
0 0 1
0 0 2
0 0 3
1 1 4
1 1 5
1 1 6
1 1 7
2 1 4
2 1 5
2 1 6
2 1 7
3 1 4
3 1 5
3 1 6
3 1 7
join如果在所有作業正常之前洗掉其中一個中的重復項:
test.join(train.drop_duplicates('link_1').set_index('link_1')['claps_link_1_mean'], on='link_1', how='left')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/459465.html
上一篇:如何在不使用numpy和括號的情況下將嵌套串列制作成矩陣
下一篇:回傳前后值較低的行
