首页 > 解决方案 > 扩展和填充 Pandas DataFrame 以匹配另一个

问题描述

我有两个 Pandas DataFrames 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

标签: pythonpandasdataframeappendreindex

解决方案


这应该工作

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

推荐阅读