随着时间重置反变量

时间:2019-05-01 08:28:23

标签: python pandas

我有与此数据集相似的数据。

data = pd.DataFrame([])
data["time"] = range(20)
data["id"] = [1]*8 + [2]*12
data["x"] = [0, .53, 1.06, 1.59, 2.12, 2.65, .2, .73, .4, 1, 1.6, 2.2, 2.8, 3.4, .2, .8, 1.4, 2, 2.6, 3]
data["x_desiderated"] = [0, .53, 1.06, 1.59, 2.12, 2.65, 3.18, 3.71, .4, 1, 1.6, 2.2, 2.8, 3.4, 4, 4.6, 5.2, 5.8, 6.4, 7]

   time id   x    x_desiderated
0   0   1   0.00    0.00
1   1   1   0.53    0.53
2   2   1   1.06    1.06
3   3   1   1.59    1.59
4   4   1   2.12    2.12
5   5   1   2.65    2.65
6   6   1   0.20    3.18
7   7   1   0.73    3.71
8   8   2   0.40    0.40
9   9   2   1.00    1.00
10  10  2   1.60    1.60
11  11  2   2.20    2.20
12  12  2   2.80    2.80
13  13  2   3.40    3.40
14  14  2   0.20    4.00
15  15  2   0.80    4.60
16  16  2   1.40    5.20
17  17  2   2.00    5.80
18  18  2   2.60    6.40
19  19  2   3.00    7.00

问题在于,对于每个id,x应该随时间增加几乎恒定的增量。在此玩具示例中,对于id = 1,x应该增加0.53;对于id = 2,x应该增加0.6。 我有时会随意重置。 我想创建一个新的x变量,可以在其中模拟x的正常行为。

1 个答案:

答案 0 :(得分:0)

你的意思是这样吗?

delta = 0.5
data["x_delta"] = data["id"] * delta
# or data["x_delta"] = list_with_delta_vallues
data["new_x"] = data["x"] + data["x_delta"]