扩展并填充 Pandas DataFrame 以匹配另一个

Extend and fill a Pandas DataFrame to match another

我有两个 Pandas DataFrame A 和 B。

它们在某一点上具有相同的索引(每周日期):该系列在年初结束 对于 A 并继续在框架 B 中进行大量观察。我需要将数据框架 A 设置为与框架 B 具有相同的索引 - 并用自己的最后一个值填充每一列。

提前致谢。

吉洪

编辑:感谢您对问题的建议。我需要的是 dfA_before 查看 dfB 并成为 dfA_after:

print(dfA_before)
a    b
0  10  100
1  20  200
2  30  300

print(dfB)
    a    b
0  11  111
1  22  222
2  33  333
3  44  444
4  55  555

print(dfA_after)
    a    b
0  10  100
1  20  200
2  30  300
3  30  300
4  30  300

这应该有效

import numpy as np
import pandas as pd

df1 = pd.DataFrame({'a':[10,20,30],'b':[100,200,300]})
df2 = pd.DataFrame({'a':[11,22,33,44,55],'c':[111,222,333,444,555]})

# solution
last = df1.iloc[-1].to_numpy()
df3 = pd.DataFrame(np.tile(last,(2,1)),
                   columns=df1.columns)

df4 = df1.append(df3,ignore_index=True)

# method 2
for _ in range(len(df2)-len(df1)):
    df1.loc[len(df1)] = df1.loc[len(df1)-1]


# method 3
for _ in range(df2.shape[0]-df1.shape[0]):
    df1 = df1.append(df1.loc[len(df1)-1],ignore_index=True)

# result
    a    b
0  10  100
1  20  200
2  30  300
3  30  300
4  30  300

可能效率很低-我是初学者:

dfA_New = dfB.copy()
dfA_New.loc[:] = 0  
dfA_New.loc[:] = dfA.loc[:]
dfA_New.fillna(method='ffill', inplace = True)
dfA = dfA_New