添加NaN值与另一个数据框进行比较

时间:2019-11-09 22:29:32

标签: python-3.x pandas dataframe matplotlib

我的数据框df_a为-

Date         Quantity
2019-02-01     345
2019-02-09     570
2019-03-10     784
2019-03-19     880
2019-04-05    1134
2019-05-12    1477
2019-07-21    2190

而另外一个以df_b开头

Date         Quantity
2019-03-19    1840
2019-04-05    2149
2019-05-12    2473
2019-07-21    2992

当我需要绘制数据并比较两条线时,如何修改此数据框以使其前三个日期具有NaN值?预期输出-

Date         Quantity
2019-02-01     NaN
2019-02-09     NaN
2019-03-10     NaN
2019-03-19    1840
2019-04-05    2149
2019-05-12    2473
2019-07-21    2992

但是,当我现在绘制它时,它显示df_b值从2019-02-01开始而不是从2019-03-19开始,即该绘制未按预期中途开始。

2 个答案:

答案 0 :(得分:1)

因此您可以在reindex之后进行set_index

df2.set_index('Date').reindex(df1.Date).reset_index()
Out[14]: 
         Date  Quantity
0  2019-02-01       NaN
1  2019-02-09       NaN
2  2019-03-10       NaN
3  2019-03-19    1840.0
4  2019-04-05    2149.0
5  2019-05-12    2473.0
6  2019-07-21    2992.0

答案 1 :(得分:0)

为什么不创建一个包含两者的框架?

df_a = df_a.set_index('Date')
df_b = df_b.set_index('Date')

df_a['QuantityB] = db_b['Quantity']