我有一列由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
答案 0 :(得分:1)
您可以通过以下三个步骤进行操作:
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