计算序列中值的百分比变化

1 投票
1 回答
4848 浏览
提问于 2025-04-18 23:04

我有一个数据表,里面有两列。我想知道在什么时刻问题的数量增加了。

In [19]: status
Out[19]:
   seconds  questions
0   751479    9005591
1   751539    9207129
2   751599    9208994
3   751659    9210429
4   751719    9211944
5   751779    9213287
6   751839    9214916
7   751899    9215924
8   751959    9216676
9   752019    9217533

我需要计算一下“问题”这一列的百分比变化,然后根据这个变化进行排序。但是这样做不行:

status.pct_change('questions').sort('questions').head()

有什么建议吗?

1 个回答

3

试试这个方法:

>>> status['change'] = status.questions.pct_change()
>>> status.sort_values('change', ascending=False)

   questions  seconds    change
0    9005591   751479       NaN
1    9207129   751539  0.022379
2    9208994   751599  0.000203
6    9214916   751839  0.000177
4    9211944   751719  0.000164
3    9210429   751659  0.000156
5    9213287   751779  0.000146
7    9215924   751899  0.000109
9    9217533   752019  0.000093
8    9216676   751959  0.000082

pct_change 可以在 Series 和 DataFrame 上使用,它接受一个整数参数,用来指定你想计算变化的周期数(默认是 1)。

我还假设你想根据 'change' 列进行排序,显示百分比变化最大的在前面……

撰写回答