【发布时间】:2015-03-16 02:22:27
【问题描述】:
我有一个 pd.DataFrame
Time Value
a 1 1 1
2 2 5
3 5 7
b 1 1 5
2 2 9
3 10 11
我想将Value 列与Time - Time(t-1) 列相乘,并将结果写入Product 列,从b 行开始,但对于每个顶级索引都是分开的。
例如Product('1','b') 应该是(Time('1','b') - Time('1','a')) * Value('1','b')。为此,我需要在 b 行“开始”列Time 的“移位”版本,以便我可以执行df["Product"] = (df["Time"].shifted - df["Time"]) * df["Value"]。结果应如下所示:
Time Value Product
a 1 1 1 0
2 2 5 5
3 5 7 21
b 1 1 5 0
2 2 9 9
3 10 11 88
【问题讨论】:
-
我不明白,在产品中取值 88,我在
Value列中看到 11,但在Time列中的任何地方都看不到 8。跨度> -
就像我上面描述的: Product('b','3') = (Time('b','3') - Time('b','2')) * Value( 'b','3') --> 88 = (10-2) * 11
标签: python pandas slice multi-index