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条经验 获得超7个赞
用于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
添加回答
举报