2 回答

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊
使用DataFrame.melt和DataFrame.stack來(lái)DataFrame.join映射新值,然后我們將 DataFrame 恢復(fù)為原始形狀DataFrame.pivot:
#if neccesary
#K = K.rename(columns = int)
L = (J.reset_index()
.melt('index')
.join(K.stack().rename('new_values'),on = ['index','value'])
.pivot(index = 'index',
columns='variable',
values = 'new_values')
.rename_axis(columns = None,index = None)
)
print(L)
或與DataFrame.lookup
L = J.reset_index().melt('index')
L['value'] = K.lookup(L['index'],L['value'])
L = L.pivot(*L).rename_axis(columns = None,index = None)
print(L)
輸出
A B C
01/01/10 0.05 -0.12 -0.42
01/02/10 0.82 0.11 0.34
01/03/10 0.24 -0.55 -0.01
我認(rèn)為這apply可能是一個(gè)不錯(cuò)的選擇,但我不確定,我建議你看看When should I want use apply in my code

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
用于DataFrame.apply基于DataFrame.lookup標(biāo)簽的索引。
# if needed, convert columns of df2 to integers
# K.columns = K.columns.astype(int)
L = J.apply(lambda x: K.lookup(x.index, x))
A B C
01/01/10 0.05 -0.12 -0.42
01/02/10 0.82 0.11 0.34
01/03/10 0.24 -0.55 -0.01
添加回答
舉報(bào)