Построение срезов (временной индекс) двух или более столбцов с помощью панд - PullRequest
0 голосов
/ 27 ноября 2018

Я регулярно агрегирую данные о ценах временных рядов акций и считаю, что мне нужно составлять срезы указанных данных.

Если мой фрейм данных (df) содержит столбец (или столбцы), который я хочу построить, я просто использую

df.loc['DATE'].plot

Но, допустим, у меня есть гипотетический набор данных (df) Panda

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

И я хотел построить df ['A'] и df ['C'] для 03-2010вперед ... Обычно я бы уменьшил df до df, который я хочу построить, например:

df=df.loc['03-2010':]
df=df.drop(['B','D'],axis=1)
df.plot()
  1. Есть ли лучший способ сделать это в одну или две строки--в частности, не отбрасывая все столбцы, которые мне не нужны (если у меня есть тонна столбцов)?Может быть, передавая определенные срезы столбцов?

  2. Скажем, два (пока) столбца имеют разные значения, есть ли способ построить их срезы со вторичной осью Y?

1 Ответ

0 голосов
/ 27 ноября 2018

Лично мне не нравится использовать .plot метод 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 или редактирования df.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...