康卡特&在熊猫中为几个不同的时间序列编制索引

时间:2017-04-01 20:58:22

标签: python pandas matplotlib

我使用concat将几个不同的期货价格时间序列组合成一个数据框。例如,大豆和玉米期货合约多年。

我想在同一时间以图形方式比较不同合同的价格,在这种情况下,11月1日到7月1日,无视年份。为此,我使用reset_index()将它们组合在一起。

唯一的问题是当我绘制它们时,我想要一个比0到160数字索引间隔更直观的x轴。理想情况下,我希望每月11月1日至7月1日有标签,省略年份。

这当然在excel中很容易做到,但我也希望能用Python做到这一点。

dfc14 = quandl.get('CME/CZ2014.6', start_date='2013-11-01', end_date='2014-07-\ 01', authtoken=api_key)

dfs14 = quandl.get('CME/SX2014.6', start_date='2013-11-01', end_date='2014-07-01', authtoken=api_key)
dfr14 = dfs14.div(dfc14)
dfr14 = dfr14.rename(columns={'Settle':'2014'})
dfr14 = dfr14.reset_index()
# ...
com_df = pd.concat([dfr17, dfr16, dfr14],)

1 个答案:

答案 0 :(得分:0)

我这样做的方法是获取mmdd列并将其用作索引 - 用于x轴和x轴标签。

我为三个DataFrames中的两个做了。

dfr14['mmdd'] = (dfr14['Date'].dt.month.astype(str).str.zfill(2) + 
                 dfr14['Date'].dt.day.astype(str).str.zfill(2))
dfr15['mmdd'] = (dfr15['Date'].dt.month.astype(str).str.zfill(2) + 
                 dfr15['Date'].dt.day.astype(str).str.zfill(2))

dfr15 = dfr15.set_index('mmdd')
dfr14 = dfr14.set_index('mmdd')

ax = dfr15.plot()
dfr14.plot(ax=ax)
plt.show()

两人的结果:

enter image description here