扩展并填充熊猫数据框以匹配另一个

时间:2020-03-04 05:03:18

标签: python pandas dataframe append reindex

我有两个熊猫数据框A和B。

它们具有相同的索引(每周日期),直到某一点为止:该系列在年初开始结束 我需要将数据帧A设置为与帧B具有相同的索引-并用自己的最后一个值填充每一列。

谢谢。

Tikhon

编辑:感谢您对问题的建议。我需要的是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

2 个答案:

答案 0 :(得分:3)

这应该有效

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

答案 1 :(得分:0)

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

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