簡體   English   中英

在同一圖上繪制數據框

[英]Plotting dataframes on same plot

我有兩個數據框:

a.head()

             AAPL             SPY       date
0  1000000.000000  1000000.000000 2010-01-04
1   921613.643818   969831.805642 2010-02-04
2   980649.393244  1000711.933790 2010-03-04
3   980649.393244  1000711.933790 2010-04-04
4  1232535.257461  1059090.504583 2010-05-04

b.head()

                 date           test
0 2010-01-26 22:17:44  990482.664854
1 2010-03-09 22:37:17  998565.699784
2 2010-03-12 02:11:23  989957.374785
3 2010-04-05 18:01:37  994315.860439
4 2010-04-06 11:06:50  987887.723816

設置ab的索引( set_index('date') )后,可以使用pandas plot()函數創建一個漂亮的圖,其日期為x軸,各列為y值。 我想做的是在同一張圖上繪制兩個具有不同索引的數據框 ab可以看到,索引是不同的,我想將它們繪制在同一圖上。

我嘗試了mergeconcat來將數據框連接在一起,但是結果圖不是我想要的,因為這些函數在日期不相同的地方插入numpy.NaN ,這使我的圖不連續。 我可以使用pd.fillna()但這不是我想要的,因為我希望它只是將各點連接在一起而不是降低到0。

假設您希望在x軸上使用相同的時間刻度,那么在串聯這些列之前,將需要時間戳作為ab的索引。

然后,您可以使用插值法來填充丟失的數據,如果要向前填充過去觀察到的數據點,可以選擇使用ffill()作為附加操作。

df = pd.concat([a, b.set_index('date')], axis=1)
df.interpolate(method='time').plot()  # interpolate(method='time').ffill()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM