熊猫-单列发行

时间:2019-04-26 11:35:09

标签: python pandas divide

我有一列由datetime索引的float64数据。我需要将一行除以一行。

在下面的实例中,我需要从1.1133 / 1.1134的数据帧开始,然后获取结果并将其存储在新列中。然后向下移动并重复。

在excel中,您可以非常简单地说出B2 / B3并将其向下拖动。我可以在Pandas Dataframe中使用一种方法来模仿吗?我已经尝试过使用除法功能进行各种配置,但是效果不佳。在这方面的任何帮助都将为我指明正确的方向。

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 个答案:

答案 0 :(得分:1)

您可以通过以下三个步骤进行操作:

  1. 重复的dataFrame
  2. 将重复的数据框移动(将索引移动一行)
  3. 基于减法创建新列

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

我不确定您正在寻找shift(1)还是shift(-1) shift将所有索引移动给定值。

答案 1 :(得分:0)

我认为您需要这个

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