【发布时间】:2017-04-29 03:01:04
【问题描述】:
假设我有 DataFrame(称为 df)
'name' 'order' 'quantity'
'A' 1 10
'A' 2 15
'A' 3 5
'B' 1 2
'B' 2 6
我想要的是构建另一个数据框,其中包含一个列,其中连续列的差异(就列order 而言是连续的)与第一个值的比率。
我可以很容易地将所述比率(分子)的差异检索为
def compute_diff(x):
quantity_diff = x.quantity.diff()
return quantity_diff
diff_df = df.sort_values('order').groupby('name').apply(compute_diff).reset_index(name='diff')
这给了我
'name' 'level_1' 'quantity'
'A' 0 NaN
'A' 1 5
'A' 1 -10
'B' 1 NaN
'B' 2 4
现在我想要的是比例,根据描述。具体来说,我想要
'name' 'level_1' 'quantity'
'A' 1 NaN
'A' 2 0.5
'A' 3 -0.6666
'B' 1 NaN
'B' 2 2
怎么做?
【问题讨论】:
标签: python sql pandas dataframe