我定期汇总股票时间序列价格数据,发现自己需要对所述数据进行切片。
如果我的数据框(df)包含我要绘制的一列或多列,我只需使用
df.loc['DATE'].plot
但是,假设我有这个数据集(df)熊猫
Index A B C D
01-2010 1 2 3 4
02-2010 4 2 3 4
03-2010 2 2 5 5
04-2010 4 4 3 4
05-2010 6 2 4 2
06-2010 3 2 3 4
我想绘制从03-2010开始的df ['A']和df ['C'] ... 通常,我会将df缩小为要绘制的df,例如:
df=df.loc['03-2010':]
df=df.drop(['B','D'],axis=1)
df.plot()
是否有更好的方法在一两行中执行此操作-特别是不删除不需要的所有列(如果有很多列)?也许通过特定的列切片?
假设两列(目前)具有不同的值,有没有办法用次要Y轴绘制它们的切片?
答案 0 :(得分:0)
我个人不喜欢使用.plot
的{{1}}方法。
DataFrame
此函数仅使用保存数据的基础import matplotlib.pyplot as plt
def plotter(df, cols, location):
for col in cols:
plt.plot(df[col].loc[location].values)
plt.show()
数组调用plt.plot
,分别位于numpy
和col
。
随着需求的变化,您可以更改此功能以执行location
中想要的任何事情,因此您可以控制很多。据我了解您的问题,无需pyplot
或.copy
或编辑.drop
。