2 回答
TA貢獻1864條經驗 獲得超6個贊
使用DataFrame.melt和DataFrame.stack來DataFrame.join映射新值,然后我們將 DataFrame 恢復為原始形狀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
我認為這apply可能是一個不錯的選擇,但我不確定,我建議你看看When should I want use apply in my code
TA貢獻2039條經驗 獲得超8個贊
用于DataFrame.apply基于DataFrame.lookup標簽的索引。
# 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
添加回答
舉報
