Python Pandas如何让pct_change()从单个数字而不是之前的数字计算变化?

时间:2016-05-06 01:58:07

标签: python pandas

我有以下数据:

Dashboard::#{UserTypeGoesHere}.new(current_user)?

我想弄清楚第一个值20.4417 20.5679 20.0826 20.9950 20.0244 19.1702 19.3546 19.1702 19.7138 19.3546与其后的每个值之间的百分比变化。 pandas 20.4417函数返回彼此相邻的值的变化,当我尝试将Series的第一个值放入pct_change()时,我认为它将其作为句点并给予我{{ 1}}直到那一点。有谁知道如何让它获取参数并在该参数和系列的每个元素之间进行百分比变化?这是我的代码:

pct_change()

2 个答案:

答案 0 :(得分:2)

解决方案

s2 = s1 / s1[0] - 1

这应该这样做

答案 1 :(得分:0)

突然出现的第一件事就是只添加另一列,然后对axis=1进行百分比更改。

import pandas as pd
f = pd.DataFrame(
    [20.4417,
    20.5679,
    20.0826,
    20.9950,
    20.0244,
    19.1702,
    19.3546,
    19.1702,
    19.7138,
    19.3546])

f['added_col'] = [f[0][0] for i in range(len(f))] # Create column where each element is the first item in the first column
f = f[f.columns[::-1]] # flip our columns so we compare in the right order
print f.pct_change(axis=1)[0]

输出:

0    0.000000
1    0.006174
2   -0.017567
3    0.027067
4   -0.020414
5   -0.062201
6   -0.053181
7   -0.062201
8   -0.035609
9   -0.053181
Name: 0, dtype: float64