Панды - Разделение в пределах одной колонки - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть столбец данных float64, проиндексированных по дате и времени.Мне нужно разделить одну строку на строку перед ней.

В приведенном ниже примере мне нужно начать с фрейма данных с 1.1133 / 1.1134, затем взять результат и сохранить его в новом столбце.Затем двигайтесь вниз по строке и повторяйте.

В Excel вы можете сделать это очень легко, например, B2 / B3, и перетащить его вниз.Есть ли метод, который я могу использовать в DataPrame Pandas, чтобы имитировать это?Я пробовал разные конфиги с функцией деления, но безрезультатно.Любая помощь в этом была бы здорово, чтобы указать мне в правильном направлении.

Time             Close

4/26/2019 11:08 1.1133 

4/26/2019 11:07 1.1134

4/26/2019 11:06 1.1135

4/26/2019 11:05 1.1135

4/26/2019 11:04 1.1135

4/26/2019 11:03 1.1135

Ответы [ 2 ]

1 голос
/ 26 апреля 2019

Вы можете сделать это в три шага:

  1. Дублировать фрейм данных
  2. Сместить дубликат фрейма данных (переместить индекс на одну строку)
  3. Создать новый столбец на основевычитание

df["new_columns"] = (df["Close"] / df["Close"].shift(1))

Я не совсем уверен, если вы ищете shift(1) или shift(-1) shift переместить все индексы на указанное значение.

0 голосов
/ 26 апреля 2019

Я думаю, вам нужно это

df = pd.DataFrame([['a',1,41],['a',2,98],['a',3,53],['b',1,15],['b',2,64],['b',3,36]], columns=['date', 'xart','yart']) 

  date xart yart
0   a   1   41
1   a   2   98
2   a   3   53
3   b   1   15
4   b   2   64
5   b   3   36

df['change'] = df['xart'].pct_change(1)
df

  date xart yart change
0   a   1   41  NaN
1   a   2   98  1.000000
2   a   3   53  0.500000
3   b   1   15  -0.666667
4   b   2   64  1.000000
5   b   3   36  0.500000
...