[英]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
設置a
和b
的索引( set_index('date')
)后,可以使用pandas plot()
函數創建一個漂亮的圖,其日期為x軸,各列為y值。 我想做的是在同一張圖上繪制兩個具有不同索引的數據框 。 從a
和b
可以看到,索引是不同的,我想將它們繪制在同一圖上。
我嘗試了merge
和concat
來將數據框連接在一起,但是結果圖不是我想要的,因為這些函數在日期不相同的地方插入numpy.NaN
,這使我的圖不連續。 我可以使用pd.fillna()
但這不是我想要的,因為我希望它只是將各點連接在一起而不是降低到0。
假設您希望在x軸上使用相同的時間刻度,那么在串聯這些列之前,將需要時間戳作為a
和b
的索引。
然后,您可以使用插值法來填充丟失的數據,如果要向前填充過去觀察到的數據點,可以選擇使用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.