我有两个表,第一个是贷款的期限结构,第二个是贷款的利息。 x年后,贷款转移到固定利率结构上(这在现实世界中是相反的,但这是我目前正在使用的结构)。我的合并表并不总是具有相同的行数,因此,在每个条目的末尾,我剩下空白的行数。
表1(左表):
period Cash flow
1 400
2 400
3 400
4 400
... ....
表2(右表):
period interest rate
1 0.05
2 0.10
我希望将右表的最后一行(按条目)扩展为左表的长度(按条目)
表2(新的右表):
period interest rate
1 0.05
2 0.1
3 0.1
4 0.1
我试图将以下代码改编为仅使用最后一行(参考末尾给出的问题),但是我收到一条错误消息。
原始代码是
df = df.loc[df.index.repeat(df['RoomNights'])]
修改尝试将loc更改为iloc并选择要被new_len次复制的最后一行
len(left_table)
len(right_table)
if len(right_table) < len(left_table) + 4:
new_len = len(left_table) + 4
right_table = right_table.iloc[right_table[-1,:].index.repeat(new_len)]
错误消息是
TypeError: unhashable type: 'slice'
答案 0 :(得分:0)
您可以这样做:
df1.merge(df2, how='left').fillna(method='ffill')
输出:
period Cash flow interest rate
0 1 400 0.05
1 2 400 0.10
2 3 400 0.10
3 4 400 0.10